sri*_*apa 9 php compiler-construction zend-framework
PHP是一种通用的服务器端脚本语言.众所周知,当页面加载并显示结果网页时,将解释php代码.最近我听说过PHP(HipHop虚拟机)的及时编译器.想知道它在执行中会产生什么样的差异,是否更好的是有一个jit而不是解释器?有jit的任何php引擎吗?
编辑:PHP执行流程是这样的吗?:php代码 - >解析 - >令牌 - > 字节码/操作码 - > php引擎解释 - >机器码 - >执行
如果我错了,请取决于我.字节码通常在虚拟机中执行.Opcode(接近机器语言)可以直接由机器执行.这是否意味着php引擎是一个虚拟机,或者只是它的一些实现是虚拟机?
提前致谢.
HipHop不是JIT编译器 - 它是一个将PHP转换为C++的代码转换器,然后可以使用传统的离线编译器进行编译.
因此,eval和create_function将不起作用,也不会使用tokenizer函数.我没有深入研究过这个问题,但我希望条件/运行时评估包括操作也可能导致问题.
除非它使代码更快,否则没有多大意义.
使用PHP操作码缓存的OTOH在不影响功能的情况下提供了巨大的性能提升(不如本机代码那么多).
(鉴于PHP的架构,JIT编译器并没有太多意义)