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

时间:2011-04-10 15:58:23

标签: php caching bytecode

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

2 个答案:

答案 0 :(得分:38)

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

  • 首先:以纯文本编写的PHP代码编译为操作码
  • 然后:执行操作码


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

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

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


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

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

答案 1 :(得分:0)

  但是怎么做呢?

易。
首先,您必须执行一些分析,以确保代码解析成为您网站的瓶颈,并且所有其他明显的代码(如未优化的数据存储,慢速算法,数据挖掘和网络调用)都已经过优化。

确定您是否需要操作码缓存的最简单方法是将此行放在最常用页面的最顶层

$timer_start = microtime(1);

这一行最后:

echo "Generated in ".(round((microtime(1) - $timer_start),4))." sec.";

如果时间超过0.01,您还需要先优化其他内容,因为您会注意到操作码缓存无效。