PHP加速器与即时编译

PHP加速器与即时编译,php,compiler-construction,accelerator,Php,Compiler Construction,Accelerator,来自维基百科: 大多数PHP加速器通过缓存PHP编译的字节码来工作 脚本,以避免在上解析和编译源代码的开销 每个请求(部分或全部请求可能永远不会执行)。到 进一步提高性能,缓存的代码存储在共享内存中 内存,并直接从那里执行,最大限度地减少了缓慢的 在运行时进行磁盘读取和内存复制 即时编译: JIT编译器代表了一种混合方法,可以进行转换 不断地,就像口译员一样,但会缓存翻译的内容 将性能降级降至最低的代码 那么,在PHP上使用诸如APC之类的PHP加速器是否与“即时”编译PHP对性能有着同等的影响

来自维基百科:

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

即时编译:

JIT编译器代表了一种混合方法,可以进行转换 不断地,就像口译员一样,但会缓存翻译的内容 将性能降级降至最低的代码

那么,在PHP上使用诸如APC之类的PHP加速器是否与“即时”编译PHP对性能有着同等的影响(假设有可能做到这一点)……事实上,它们实际上是一样的吗

那么,在PHP上使用诸如APC之类的PHP加速器是否与“即时”编译PHP对性能有着同等的影响(假设有可能做到这一点)……事实上,它们实际上是一样的吗

相同的概念,不同的执行

在大多数圈子里提到JIT时,它指的是将虚拟机字节码编译成本机字节码。例如,Facebook是一个PHP实现,它使用

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

请注意术语“PHP加速器”。早在PHP4时代,PHP解析器创建的字节码可以进行一些优化以获得更好的性能。自PHP5早期以来,就不需要这样做了。APC、Zend“优化器”和其他“加速器”产品为提高PHP性能所做的唯一一件事就是缓存字节码。“加速器”一词不应再用于消除歧义


如果您使用的是标准PHP,那么您确实需要字节码缓存,只要避开那些说他们试图进行PHP字节码优化的产品。

我知道这是一个很老的帖子,也许事情已经改变了,但是Zend optimizer+确实优化了代码。引用:“此外,它应用了一些字节码优化模式,使代码执行更快。”。是的,这些优化恰好在PHP4中产生了非常非常大的差异。现在,看看字节码优化是否有什么不同将是一件有趣的事情