List of PHP accelerators
This is a list of PHP accelerators.
Alternative PHP Cache (APC)
Alternative PHP Cache is a free and open (PHP license) framework that caches the output of the PHP bytecode compiler in shared memory, thus reducing parsing and disk I/O overhead for later requests; and a shared memory cache for user data. For an application consisting of a large source code base such as Drupal, a 3x increase in page generation speed is possible as a result.[1]
It has been used at Facebook and has a mature codebase thanks to numerous contributors, including Facebook itself.[2]
APC was originally scheduled for inclusion into the PHP core no later than PHP 6.[3] While multiple accelerator projects were considered desirable,[4] the focus has since moved to Optimizer Plus,[5][6] and, later, Zend Opcache that is included in the core distribution as of PHP 5.5.[7] Since March 2013, a beta version of APCu (APC User Cache) is available, in which all opcode caching abilities have been removed to support user caches in shared memory using the familiar APC API.[8]
- Website: http://pecl.php.net/package/APC
- PHP version: works with all PHP versions up to PHP 5.4 (3.1.13 - beta release)
- Latest beta version: 3.1.13 (2012-09-03)
- Latest stable version: 3.1.9 (2011-05-14)
- Status: Dormant, potentially dead (no new releases since September 2012)
- Download link: http://pecl.php.net/package/APC (source code, required for up-to-date compilation)
- Official installation help: http://php.net/apc.setup and http://php.net/apc.installation (extension must be compiled against the sources of the PHP version it is to be used with; includes instructions for building on Windows)
eAccelerator
eAccelerator was born in December 2004 as a fork of the Turck MMCache project. Turck MMCache was created by Dmitry Stogov and much of the eAccelerator code is still based on his work. eAccelerator also contained a PHP encoder and loader, but the development staff discontinued the encoder and removed this feature after December 2006.
- Website: http://eaccelerator.net/
- PHP version: Supports PHP 4 and all PHP 5 thread-safe releases including 5.4. In older releases, the encoder will only work with PHP versions from the 4.x.x branch. eAccelerator will not work with any other versions of PHP. eAccelerator can only be used with the thread-safe version of PHP.
- Latest stable version: 0.9.6.1 (2010-05-31)
- Status: Dormant, potentially dead (no new releases since July 2012). The last public activity was the transfer to Github by Hans Rakers. The master branch supports PHP 5.4.
- Github repository
- Download link: (look for latest versions) http://eaccelerator.net/, download page on SourceForge
- Official installation help: https://eaccelerator.net/wiki/InstallFromSource
ionCube PHP Accelerator
Launched in 2001, ionCube PHP Accelerator (PHPA) was the first freely available PHP accelerator to compete with the commercial Zend Cache product. Created before ionCube Ltd. was founded and at a time when the performance of PHP was regarded as lackluster when compared to other popular web programming languages, PHPA showed that PHP can compete with other languages performance-wise. Although the author of PHPA chose to keep the project closed source in response to early concerns raised by Zeev Suraski of Zend Technologies about the effect that an open source rival might have on their commercial alternative, the availability of PHPA on a wide variety of platforms led to its extensive adoption worldwide from small sites to Yahoo!. It also inspired the redevelopment of APC to use the shared memory execution techniques that PHPA and Zend Cache had adopted instead of deserialization on each request that incurred performance penalties.
As for now it is available as try & buy software supporting PHP up to version 7.1.
Turck MMCache
Turck MMCache is now discontinued. eAccelerator is a fork of Turck MMCache.
XCache
XCache is a fast, stable PHP opcode cacher that has been tested and is now running on production servers under high load. It is tested on GNU/Linux and FreeBSD and supported under Windows, for thread-safe and non-thread-safe versions of PHP. This relatively new opcode caching software has been developed by mOo, one of the developers of Lighttpd, to overcome some of the limitations of the existing solutions at that time; such as being able to use it with new PHP versions as they arrive.
- Website: https://web.archive.org/web/20120224193029/http://xcache.lighttpd.net/
- PHP version: full support for up to PHP 5.6
- Latest stable version: 3.2.0 (Released on 2014-9-18)
- Status: Dormant, potentially dead (No release since 2014)
- Download link: http://xcache.lighttpd.net/wiki/ReleaseArchive
- Official installation help: http://xcache.lighttpd.net/wiki/InstallFromSource
Nusphere PhpExpress
PhpExpress is a free PHP opcode cache that loads both Nu-Coder (commercial) encoded and plain PHP files directly into the PHP engine, saving loading time and boosting performance of PHP applications. It's available on Windows, Linux, FreeBSD, NetBSD, Mac OS X, and Solaris.
- Download link: http://www.nusphere.ru/files/download/NuSphere-PhpExpress-3.0.zip
- Official installation help: http://www.nusphere.com/kb/phpexpressmanual/part1.htm#2
- Website: http://www.nusphere.com/products/phpexpress.htm
- PHP version: PHP 4.3 to 5.3
- Latest stable version: 3.1
- Status: Potentially dead (no new releases since Jan 2012 and they are not responding to enquires). The last supported version of PHP was 5.3.
Zend Opcache (ex. Zend Optimizer+)
Zend Opcache[9] is an open source[10] component of Zend Server and Zend Server Community Edition. Zend Opcache speeds up PHP execution by opcode caching and optimization. It stores precompiled script bytecode in shared memory. As of version 7.0 it can store precompiled script bytecode on disk. 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. Unlike Zend Optimizer, Zend Opcache doesn't load files encoded by Zend Guard. Zend provides another component, Zend Guard Loader, in order to load encoded applications with Zend Server and Zend Server Community Edition.
Zend Optimizer+ was renamed to Zend Opcache mid of March 2013.
Starting with PHP 5.5 the Zend Opcache is integrated and shipped with PHP.[7]
- Website: http://pecl.php.net/package/ZendOpcache
- Sources: https://github.com/zend-dev/ZendOptimizerPlus/
- PHP version: full support for PHP 5.2+
- Latest stable version: 7.1.6
- Status: Actively maintained
Zend Platform
Zend Platform (formerly Zend Cache and then Zend Accelerator) is a commercial Web Application Server product. It has a complete set of performance capabilities that includes more than a simple PHP accelerator. Features include code caching/acceleration, data caching, content (html output) caching, download optimization and off-line (asynchronous) processing capabilities that can result in significant performance improvements for most PHP applications. It also includes detailed PHP monitoring and root cause analysis support to help in tuning and debugging, session fail-over support for HA (High Availability) needs and other integration capabilities including Java integration.
Zend Platform and Zend Core are now in 'end of life' status <http://www.zend.com/en/products/platform/end-of-life> and are replaced with Zend Server.[11]
Windows Cache Extension for PHP
A free, open source (New BSD License), PHP accelerator developed by Microsoft for PHP under Windows. The extension includes PHP opcode cache, file cache, resolve file path cache, object/session cache, file change notifications and lock/unlock API's. Combination of all these caches results in significant performance improvements for PHP applications hosted on Windows. The extension is primarily used with Internet Information Services and non-thread-safe build of PHP via FastCGI protocol.
- Website: http://www.iis.net/expand/WinCacheForPHP
- PHP version: works with PHP 5.2 (VC6 NTS), 5.3 (VC9 NTS), 5.4 (VC9 NTS), 5.5 (VC11 NTS), 5.6 and 7.0, source code available
- Latest stable version: 2.0.0.8 (2016-11-09)
- Status: released, actively developed.
- Download link (source): http://pecl.php.net/package/WinCache
- Download link (binary): http://www.iis.net/expand/WinCacheForPhp
- Help and API documentation http://www.php.net/wincache
Comparison of features
Name | Availability | Opcode cache | File cache | Resolve file path cache | Object/session cache | Optimization | Cache in memory | Source encoding |
---|---|---|---|---|---|---|---|---|
APC | Discontinued | Yes | Yes | ? | Yes | Yes | Yes | No |
eAccelerator | Discontinued | Yes | Yes | ? | ? | ? | Yes | ? |
PHP Accelerator (PHPA) | Discontinued | Yes | Yes | ? | No | Yes | Yes | No |
Turck MMCache | Discontinued | ? | ? | ? | ? | ? | ? | ? |
XCache | Discontinued | Yes | Yes | ? | Yes | No[12] | Yes | ? |
Nusphere PhpExpress | Discontinued | Yes | ? | ? | ? | ? | ? | ? |
Zend Opcache (ex. Zend Optimizer+) | Maintained | Yes | Yes | ? | No | Yes | Yes | No |
Zend Platform | Discontinued | ? | ? | ? | ? | ? | ? | ? |
Windows Cache | Maintained | Yes | Yes | Yes | Yes | ? | Yes | ? |
Compatibility chart
PHP accelerators | Availability | OS | Web servers | PHP version | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | GNU/Linux | FreeBSD | Mac OS X | NetBSD | Solaris | IIS | Apache | Nginx | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 | 7.0 | 7.1 | 7.2 | 7.3 | ||
APC | Discontinued | Yes | Yes | Yes | Yes | ? | Yes | ? | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
eAccelerator | Discontinued | Yes | Yes | Yes | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
ionCube | Discontinued | Yes | Yes | Yes | Yes | ? | Yes | ? | Yes | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Turck MMCache | Discontinued | ? | ? | ? | ? | ? | ? | ? | ? | ? | Yes | No | No | No | No | No | No | No | No |
XCache | Discontinued | Yes | Yes | Yes | Yes | ? | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
Nusphere PhpExpress | Discontinued | Yes | Yes | Yes | Yes | Yes | Yes | ? | ? | ? | Yes | Yes | No | No | No | No | No | No | No |
Zend Opcache (ex. Zend Optimizer+) | Maintained | Yes | Yes | Yes | Yes | ? | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Zend Platform [13] | Discontinued | No | Yes | No | No | No | Yes | No | Yes | No | Yes | No | No | No | No | No | No | No | No |
Windows Cache | Maintained | Yes | No | No | No | No | No | Yes | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? |
Other products
Zend Guard Loader, formerly known as Zend Optimizer, is a free PHP extension by Zend Technologies that loads files encoded and obfuscated by Zend Guard.[14] It does not optimize or cache PHP's byte code.
See also
- HipHop for PHP
- HHVM (HipHop Virtual Machine)
References
- "Benchmarking Drupal with PHP op-code caches: APC, eAccelerator and XCache compared | 2bits.com, Inc. - Drupal Performance Optimization, Development, Managed Hosting, Customization and Consulting". 2bits.com. Retrieved 2014-02-14.
- "PHP and Facebook". Blog.facebook.com. Retrieved 2014-02-14.
- "'[PHP-DEV] APC in trunk' thread - MARC". Marc.info. Retrieved 2014-02-14.
- "'Re: [PHP-DEV] APC in trunk' - MARC". Marc.info. Retrieved 2014-02-14.
- "PHP: rfc:optimizerplus". Wiki.php.net. Retrieved 2014-02-14.
- "PHP :: Bug #64625 :: Segfault on PHP 5.4.13 and APC 3.1.13". Bugs.php.net. Retrieved 2014-02-14.
- "[VOTE] Integrating Zend Optimizer+ into the PHP distribution". PHP.net. Retrieved 2013-03-08.
- "PECL :: Package :: APCu". Pecl.php.net. Retrieved 2014-02-14.
- "Zend Optimizer+". Zend Technologies. Retrieved 2011-03-09.
- "ZendOptimizerPlus - GitHub". Retrieved 2013-02-13.
- "Zend Server - PHP Web Application Server". Zend.com. Retrieved 2014-02-14.
- "Faq – XCache". Retrieved 2017-12-01.
- "Zend Platform 3.6.3 Release Notes". Retrieved 2017-01-19.
- "Zend Optimizer and Zend Guard Loader". Retrieved June 22, 2011.