书接上回 今天讨论如何大幅度提升PHP的运行效率。
在这,我们不纠结神马单双引号、全局变量、OO、require_once、错误抑制....
在这,我们也不讨论APC、opcache、XCache、eaccelerator....
我们知道,php的执行需要把脚本翻成Opcodes,经过一定的优化(需要工具支持)后再交给zend引擎去执行。
那么为什么不把PHP编译成机器码直接去运行呢?这是绝妙的主意!
其实,已经有很多人在考虑这个事情了,并且还有一些人付诸实践:
QB
"虽然PHP是构建Web应用的一门优秀语言,但是它仍有一定的局限性。
用php编写低执行级别的代码、执行密集型任务一般是不切实际的,因为它太慢了。
而QB扩展克服了PHP的这个弱点。它通过翻译Zend的操作码并在静态类型的虚拟机中执行,大幅度地提升了PHP的性能。
这种牛逼的技能可以让PHP程序员更多地做爱做的事情,比如说复杂的像素级的图像处理。”
QB还给了一个性能测试图表:
"The following graph shows the time required to calculate the CRC-32 checksum of 10meg of data:"
立竿见影,性能提升100倍,看上去确实很暴力!
除了QB,还有其他的,比如非死不可的https://github.com/facebook/hiphop-php