【发布时间】:2011-04-10 15:58:22
【问题描述】:
我在网上搜索并了解到可以编译 PHP 代码以提高性能。 但是怎么做呢? 我可以编译面向过程和面向对象的 PHP 代码吗?
【问题讨论】:
我在网上搜索并了解到可以编译 PHP 代码以提高性能。 但是怎么做呢? 我可以编译面向过程和面向对象的 PHP 代码吗?
【问题讨论】:
执行PHP脚本的基本思路是分两步:
当您有一个 PHP 脚本时,只要不修改,操作码将始终相同;因此,每次执行该脚本时都进行编译阶段有点浪费 CPU 时间。
为了防止冗余编译,您可以使用一些操作码缓存机制。
一旦 PHP 脚本被编译为操作码,这些操作码将保存在 RAM 中——并在下次执行脚本时直接从内存中使用;防止编译一次又一次地进行。
使用最多的操作码缓存是APC - Alternative PHP Cache:
一旦正确安装和配置了 APC,您就无需在 PHP 代码中进行任何修改:APC 将缓存操作码,仅此而已 - 该过程对您的应用程序完全不可见。
【讨论】:
但是怎么做呢?
简单。
首先,您必须进行一些分析,以确保代码解析成为您网站的瓶颈,并且优化了所有其他明显的问题,例如未优化的数据存储、慢速算法、数据挖掘和网络调用。
确定是否需要操作码缓存的最简单方法就是将此行放在最常用页面的最顶部
$timer_start = microtime(1);
最后一行:
echo "Generated in ".(round((microtime(1) - $timer_start),4))." sec.";
如果时间超过0.01,你有其他的东西要先优化,因为你会注意到操作码缓存没有效果。
【讨论】: