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