什么是opcode?
通常状况PHP的程序运转Zend虚拟之上的,当然也能够选择FB出的HHVM。PHP的opcode就是Zend虚拟机执行的指令。我们的PHP代码在需求先经过Zend编译器编译为opcode,再经过Zend解析器执行opcode指令。
opcode缓存目的
经过将PHP脚本预编译的字节码存储到共享内存中来提升PHP的性能,存储预编译字节码的益处就是省去了每次加载和解析PHP脚本的开支。
Zend Optimizer v3.x.x v2.x.x
在 PHP-5.2.x以前的PHP版本运用,用优化代码的办法来进步PHP应用程序的执行速度,理论上要比不运用ZO要快40%-100%。完成的原理是对 那些在被最终执行之前由运转编译器(Run-Time Compiler)产生的代码停止优化。(来自百科)而且在PHP-5.2.x之前只要经过官方Zend Optimizer才干运转经Zend Guard加密和混杂的PHP代码。
Zend Guard Loader
PHP-5.3.x之后的PHP版本运用,增强对PHP商用代码的维护,并进步PHP的执行性能,其前身就是Zend Optimizer。
OPcache
可以在共享内存中贮存预编译的PHP脚本,以进步PHP的执行性能,从而使得不用每次恳求都要加载与解析PHP脚本。PHP-5.5以后,已捆绑和PHP一同发布。
APC
Alternative PHP Cache (APC) 是一个开放自在的PHP opcode 缓存。它的目的是提供一个自在、 开放,和健全的框架用于缓存和优化PHP的中间代码。能够做PHP文件的opcode缓存,也能够做用户数据缓存(小量的)。
eAccelerator
eAccelerator 是一个免费开源的PHP加速、优化、编译和动态缓存的项目,它能够经过缓存PHP代码编译后的结果来进步PHP脚本的性能,eAccelerator 经过把经过编译后的PHP代码缓存到共享内存中,并在用户访问的时分直接调用从而起到高效的加速作用,固然是一个好项目,但是曾经几年没有更新了,最新版 本支持php-5.4,当然是官方说的。
Xcache
XCache 是一个又快又稳定的 PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的消费机器上稳定运转. 经过(在 linux 上)测试并支持一切现行 PHP 分支的最新发布版本, 如 PHP_5_1 PHP_5_2 PHP_5_3 PHP_5_4. 并圆满支持线程平安/Windows. 与同类 opcode 缓存器相比更胜一筹, 比方可以快速跟进 PHP 版本.
PHP代码的加密与OPcode缓存
将PHP代码直接编译为opcode代码, 其实也是一种加密PHP代码的机制了,由于只需求再进一步将opcode代码简单的序列化或者混杂,然后在Zend虚拟机执行之后,反解为opcode代 码即可。但是加密的目的是为了防止源代码被剖析的可能;而opcode是为了进步程序的运转速度。
总结:假如要选择OPcode那就直接用PHP官方引荐的OPcache吧,假如你的是商业PHP代码,在PHP-5.2.x之前选择是Zend Optimizer,但是PHP-5.3+的版本就需求运用Zend Guard Loader了。值得留意的是PHP加密并优化之后,还能够选择一种Opcode缓存。