Wincache vs APC Data Performance

On December 10, 2011, in Coding, General, by MikeMurko

I was interested in the performance of PHP’s APC cache vs the new Wincache touted by Microsoft. Essentially Wincache is APC for Windows (no duh!). I am only interested in their performance at storing variables and arrays in memory, and not any of the OPCODE stuff. Part of the reason is because I think they would be equally performant, and another part is that I have no f’ing idea about OPCODEs. Another thing is that I am not testing on server farms, so I was only evaluating single-server solutions (i.e. ignoring memcache) Enough with the hors d’oeuvres, let’s get to the meat of it.

My setup:

  • Windows 7 SP1 running IIS 7.5

  • Intel Macbook Pro Core 2 Duo 2.6 Ghz

  • 4GB RAM

  • PHP 5.3 with php_apc installed (VC6 I think, non threadsafe) and Wincache from here.

I wrote a result script that created 20,000 variables with random strings inside each cache. Then read those items out into a variable. Pretty simple, not much to it. The results:

APC: 0.61s

WinCache: 0.59s

They are basically identical. Not much more to say here. Wincache beats it by a slight amount, but not much that you’d notice. For me, I think going with APC gives you the benefit of being platform independent. On the other side Wincache seems to be better built for a Windows environment and has an automatic way to handle sessions in memory (rather than cumbersome filesystem).

They are both really easy to install as well, so it’s a tossup there. Personally I am sticking with APC due to platform independence, and the fact that CodeIgniter has a very nice caching library that already has APC code written. Maybe I’ll stop being lazy and write a Wincache library for CI’s cache class.

I am a PHP-Windows geek, and I approve this message. -Mike



Premium WordPress Themes