繁体   English   中英

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

[英]What is a bytecode cache and how can I use one in 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 ,则首先要进行其他优化,因为您会注意到操作码缓存没有效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM