什么是字节码缓存,如何在PHP中使用?

Sou*_*rav 23 php caching bytecode

我在网上搜索并发现可以编译PHP代码以提高性能.但怎么办呢?我可以编译面向程序和面向对象的PHP代码吗?

Pas*_*TIN 39

执行PHP脚本时的基本思想分为两步:

  • 第一:用纯文本编写的PHP代码被编译为操作码
  • 然后:执行那些操作码.


如果你有一个PHP脚本,只要它没有被修改,操作码将始终是相同的; 因此,每次执行脚本时进行编译阶段都会浪费CPU时间.

为了防止冗余编译,可以使用一些操作码缓存机制.

一旦PHP脚本被编译为操作码,那些将保存在RAM中 - 并在下次执行脚本时直接从内存中使用; 阻止编译一次又一次地完成.


最常用的操作码缓存是APC - Alternative PHP Cache:

一旦安装并正确配置了APC,您就无需在PHP代码中修改任何内容:APC将缓存操作码,这就是全部 - 该过程对您的应用程序完全不可见.

  • 是的,这是一个完全不同的想法:C/C++是编译语言,而PHP更像是解释类型;;; 如果你想将你的PHP代码编译成某种可执行文件,你可以看看HipHop*(https://github.com/facebook/hiphop-php/wiki/)* - 但请注意,这通常不是非常必要*(我实际上从未见过有人在生产服务器上使用HipHop - 除了facebook,当然......但你的网站是否重要?)* (3认同)
  • 是的,您可以使用APC*(您的代码无关紧要)*; 只需安装扩展,编辑你的php.ini来启用它并进行配置; 重新启动Apache,以便考虑修改; et voila; 你别无他法. (2认同)