通常,Zend引擎会在执行时将PHP编译为操作码。
要每次都跳过编译,可以使用APC之类的操作码缓存将操作码保存在共享内存中并重复使用。
好的,现在似乎还没有解决方案,只能将PHP编译为操作码并使用解决方案。类似于您使用Java的方式。
但是为什么呢? 我想知道这是一个很明显的想法,所以我想这是有原因的。
编辑:
核心问题是:
不会使PHP编译使操作码缓存变得多余吗?
唯一的“理由”是,您不能只在实时系统上修复某些问题……这是一种不好的坏习惯。
最佳答案
您已提出反对的理由。
另一个非常重要的问题是,如果您将编译与运行时分别按照发生的时间和运行的硬件分开,则很快会遇到复杂的依赖性问题-尝试运行时会发生什么情况在PHP 5.3运行时上由PHP 5.1生成的操作码?
这也使代码调试更加困难-因为调试器必须将操作码映射回源代码。
但是您似乎没有问过的一个非常重要的问题,更不用说回答了:预生成操作码的好处是什么?
在运行时之前编译操作码是否比缓存操作码有显着的优势?差异将非常小。
当然,HipHop的存在理由是, native 编译的PHP代码runs faster而不是带有操作码缓存的PHP,但以牺牲某些功能为代价。但这是完全不同的。
您是否认为仅在服务器上使用操作码可以提高安全性(由于晦涩)?
关于php - 将PHP编译为操作码并执行操作码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7118819/