PHP缓存与编译的问题

bla*_*e24 5 php compiler-construction caching apc

根据我的理解,如果你使用像APC,eAccelerator等PHP缓存程序,那么操作码将被存储在内存中,以便在后续请求中更快地执行.我的问题是,为什么它不会总是更好/更快地编译你的脚本,假设你正在使用像phc甚至HPHP这样的编译器(虽然我知道它们有动态结构的问题)?为什么还要存储操作码,因为Zend引擎需要重新读取它们,当你可以编译并跳过这一步时,它使用C函数来执行它?

Byr*_*ock 2

您不能简单地编译为 c 并让您的 php 脚本以相同的方式执行。HPHP 进行真正的编译,但它不支持 php 功能的整个超集。

其他编译器实际上只是在二进制文件中嵌入了 php 解释器,因此您实际上并没有真正编译代码。

PHP 不应该被编译。操作码缓存非常快并且足以满足 99% 的应用程序的需要。如果您有 Facebook 级别的流量,并且您已经优化了后端数据库,那么编译可能是提高性能的唯一方法。

PHP 对于 std c 库来说并不是一个薄层。