PHP通常在执行时由Zend引擎编译为操作码.
每次可以使用像APC这样的操作码缓存将操作码保存在共享内存中并重复使用时,跳过编译.
好的,现在似乎还没有解决方案只是将PHP编译为操作码并使用它.与您使用Java的方式类似.
但为什么?我想知道这个b / c这是一个非常明显的想法,所以我猜这是有原因的.
编辑:
核心问题是:
不会让PHP编译使操作码缓存变得多余吗?
反对它的唯一“理由”就是你不能只在生活系统上修复一些东西……这无论是坏的坏习惯.
你有一个理由反对它.
另一个非常重要的一点是,如果将编译与运行时分开,无论是在每次运行的时间,还是在运行的硬件方面,都会很快遇到复杂的依赖问题 – 当您尝试运行时会发生什么PHP 5.1在PHP 5.3运行时生成的操作码?
它还使代码调试更加困难 – 因为调试器必须将操作码映射回源代码.
但是,一个你似乎没有问过的非常重要的问题,更不用说回答是预生成操作码有什么好处?
在运行时之前编译操作码是否比缓存操作码有明显的好处?差异将是不可测量的小.
当然,HipHop的存在理由是本地编译的PHP代码runs faster而不是PHP,操作码缓存是以某些功能为代价的.但那是完全不同的东西.
你认为在服务器上只有操作码可以提高安全性(通过默默无闻)吗?