PHP加速器与即时编译

时间:2011-05-09 23:51:10

标签: php compiler-construction accelerator

来自维基百科的

  

大多数PHP加速器通过缓存PHP的编译字节码来工作   脚本,以避免解析和编译源代码的开销   每个请求(部分或全部可能永远不会被执行)。至   进一步提高性能,缓存的代码存储在共享中   记忆并从那里直接执行,最大限度地减少慢速   磁盘读取和内存复制在运行时。

及时汇编:

  

JIT编译器代表了一种混合方法,并且正在进行翻译   与口译员一样,持续缓存   代码,以尽量减少性能下降。

因此在PHP上使用PHP加速器(例如APC)对“即时”编译PHP的性能具有相同的影响(假设它可以这样做)....事实上它们实际上是同一个东西吗?

1 个答案:

答案 0 :(得分:5)

  

因此在PHP上使用PHP加速器(例如APC)对“即时”编译PHP的性能具有相同的影响(假设它可以这样做)....事实上它们实际上是同一个东西吗?

相同的概念,不同的执行。

在大多数圈子中提及JIT时,它指的是将虚拟机字节码编译为 native 字节码。例如,Facebook的HHVM是一个使用JIT engine

的PHP实现

但是,PHP的本机虚拟机不会对本机字节码执行JIT。事实上,它根本不是传统意义上的JIT。虽然整个文件按需编译为 PHP字节码,但实际上并不是JIT。

小心使用术语“PHP加速器”。回到PHP4时代,PHP解析器创建的字节码可以稍微优化一下,以获得更好的性能。自PHP5早期以来就不需要这样做了。 APC,Zend“Optimizer”和其他“加速器”产品提高PHP性能的唯一事物是缓存字节码。不应再使用术语“加速器”来消除歧义。

如果你正在使用标准的PHP,那么你想要一个字节码缓存,只是避开那些说他们试图进行PHP字节码优化的产品。