提高任何PHP应用程序(当然是LAMP中的“P”)的性能的最简单方式是利用一个操作码缓存。
操作码缓存将保存这个编译后的操作码,并在下一次调用该页面时重用它。
如果这个程序中一条操作码出现了多次,请尝试在dump文件中寻找处理程序代码所打印的序列。
在AT&T语法中,内存操作数的大小由操作码名称的最后一个字符决定。
我们看到了定义这些函数的更规则的语法,这可以通过操作码缓存来优化性能。
操作码缓存对于PHP流行已久,其中早期的一些要追溯到PHPV4的全盛期。
不同于APC和Wincache,它仅是一个操作码缓存和优化器,因此它不包含用户缓存组件。
阅读本文时,每个人迟早都会有的另一个想法是“为什么不把opcode-to-template转换表包含在代码中?”
转换为在操作码中指定的类型,然后将转换后的值放在堆栈顶部。
一串被处理器验证过的二进制位的序列,它作为其指令集的一个子集。
毫无疑问,一个操作码缓存是通过在每次请求后消除解析和编译脚本的需要来加速PHP的第一步。
您的发布版也有可能已经包含了一个操作码缓存,只需安装即可。
opcode是单字节指令,并且local表示索引大于Byte.MaxValue的局部变量。
使用单条内嵌汇编操作码在单处理器系统上可能不会有什么问题。
对运算码(OPcode)的缓存很有用,使得脚本不必为每个请求做重新编译。
文件缓存-即使启用了PHP操作码缓存,PHP引擎要访问一个文件系统上的脚本文件。
替代PHP缓存(APC)可能是PHP最流行的操作码缓存(参见参考资料)。
由此看来,我们只要找到计算这个密码的指令操作码就可以了。
ILGenerator.EmitCalli(Opcode,CallingConventions,Type,Type[],Type[]),用于使用托管调用约定的调用。
Zend的厂商也提供了一种商业操作码缓存,包括一个进一步提高效率的优化器。
要启用操作码优化,添加--enable-xcache-optimizer。
一个主要缺点是,它在运行时而非编译时编译,不允许操作码缓存来缓存函数。
像Rubinius这样的Ruby1.9虚拟机可以将Ruby源代码编译为操作码,然后由解释器执行。
同时,还将研究一个或多个PHP加速器和操作码优化器。