Evaluation of the xCache 1.2.1 dev PHP Opcode cache

To date I've been using APC 3.0.11 which simply has not been robust enough on Windows to be considered anywhere near production stable (atleast in the PHP 4.4.x branch) with several APC related crashes a week. I then moved to eAccelerator 0.94 which I have to say has been a rock solid choice, but it does have a lot of legacy code in it as a hang over from the Turck MMCache days. So it seems APC is the best choice for PHP 5.x on IIS, and eAccelerator is on top of the list for PHP 4.x. The problem for me is that I want an opcode caching system that is stable and fast for both the PHP 5 and 4 branches as I hope to have an installer for both PHP 4 and 5 out in the next few months.

This is where I hope the new xCache opcode caching system will come in. xCache is a relatively new opcode caching system with full support for Windows with particular focus being given to making sure it is fast and stable on both PHP 4 and 5 branches. From what I've read around the traps other Opcode Caching systems are not fully thread safe like xCache claims to be, and being thread safe is absoultely critical to being a stable opcode caching platform for Windows/IIS. After a bit of tinkering with it on my dev box I have enabled xCache 1.2.1 dev on the server hosting this website now and am hopeful it will be the answer to what I've been looking for.

UPDATE

Unfortunately it seems that xCache is not compatible with the community version of FastCGI for IIS at this stage. Currently xCache only uses the mmap shared memory scheme which is bound to an individual php.exe process and all its child processes. This is so that the xCache cache is shared among all php.exe processes. FastCGI for IIS unfortunatley does not launch extra php.exe procccess as child processes of the original php.exe process as defined by the PHP_FCGI_CHILDREN variable, but rather they are spawned by the worker process (w3wp.exe) which contains the isapi_fcgi.dll module. The effect this has is that the xCache cache is cleared every time a new php.exe process is started, and also that the xCache cache is not shared amongst any of the running php.exe processes. The xCache roadmap for 2.0.0 states that it will also utilise the shmat and futex shared memory schemes which hopefully be more successful with FastCGI for IIS. More details on this issue can be found here on the xCache support forums.


Average rating
(0 votes)
|
Submitted by Dominic Ryan on Mon, 2007-02-19 08:03.

Post new comment

  • Use <!--pagebreak--> to create page breaks.
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • You can use BBCode tags in the text, URLs will automatically be converted to links.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Copy the characters (respecting upper/lower case) from the image.