This is a really great development for PHP. A bit more background on this for those not familiar with Zend Optimizer+ and PHP. Zend Optimizer+ is an opcode cache, and using an opcode cache greatly improves the performance of PHP. The improvement is so significant, that it's generally not practical to run PHP without using an opcode cache.<p>Despite an opcode cache generally being necessary to use PHP at scale, one has never been included in the core distribution. There has often been discussion about including APC (another opcode cache) in the core. A suggestion [1] to ship APC with PHP 5.5 was proposed recently, and after some discussion, an alternative was proposed [2]: Zend would open source Zend Optimizer+, and it would be included in PHP 5.5.<p>No definite decision has been made yet on whether Zend Optimizer+ will make it into 5.5 (or the next release), but the consensus so far seems to be that it will. For more information, see <a href="https://wiki.php.net/rfc/optimizerplus" rel="nofollow">https://wiki.php.net/rfc/optimizerplus</a><p>[1] <a href="http://marc.info/?l=php-internals&m=135909498705904&w=2" rel="nofollow">http://marc.info/?l=php-internals&m=135909498705904&...</a><p>[2] <a href="http://marc.info/?l=php-internals&m=135913119321197&w=2" rel="nofollow">http://marc.info/?l=php-internals&m=135913119321197&...</a>
For those of us who have never heard of it, Zend Optimizer+ speeds up PHP execution by opcode caching and optimization. It stores precompiled script bytecode in shared memory. This eliminates the stages of reading code from the disk and compiling it on future access. For further performance improvements, the stored bytecode is optimized for faster execution.<p>See <a href="http://en.wikipedia.org/wiki/List_of_PHP_accelerators#Zend_Optimizer.2B" rel="nofollow">http://en.wikipedia.org/wiki/List_of_PHP_accelerators#Zend_O...</a>
I was testing it the other day in anticipation of this happening and it really does seem about 10% faster than APC.<p>APC is essentially doomed now at this point.<p>But optimizer+ does not have a user cache and cannot delete individual files from the cache, it's an all or nothing reset if you don't want to use file stat. There is no control panel though you can fashion one from the statistics function.<p>Also in my tests I could not get file stat to actually turn off despite the setting but I'll try the open source version.
For those that want to compare settings to other opcode caches:<p>directives for php.ini
<a href="http://files.zend.com/help/Zend-Server/content/zendoptimizerplus.html" rel="nofollow">http://files.zend.com/help/Zend-Server/content/zendoptimizer...</a><p>functions (though there are a couple of undocumented minor ones)
<a href="http://files.zend.com/help/Zend-Server/content/zend_optimizer+_-_php_api.htm" rel="nofollow">http://files.zend.com/help/Zend-Server/content/zend_optimize...</a>
Does Zend Optimize work in FastCGI mode? A problem with APC is that each FastCGI worker has it's own cache. I've been trying xcache with PHP FastCGI + nginx and that seems to work well with a shared cache.<p>[edit] According to the RFC to include Optimizer+ in the PHP core, it does work in fpm mode. <a href="https://wiki.php.net/rfc/optimizerplus" rel="nofollow">https://wiki.php.net/rfc/optimizerplus</a>
I wrote a small blog post covering the basics. Starts with explaining opcaches, talks about APC and Optimizer+ and has as how to install. Perfect for starters <a href="http://www.intracto.com/blog/testdriving-zend-optimizer" rel="nofollow">http://www.intracto.com/blog/testdriving-zend-optimizer</a>
Can anyone see if this supports running Zend encoded programs? I'm not familiar enough with how it works to know if this is enough to run them.<p>We have to use Zend's idiotic binary-only shim to run a Zend encoded PHP program and it'd be nice to replace it.
Why not simply using hiphop-php ? This is what empowers facebook and seem pretty neat <a href="https://github.com/facebook/hiphop-php" rel="nofollow">https://github.com/facebook/hiphop-php</a>