即使网站位于CloudFlare CDN的背后,我们还是决定使用OPCache来减少服务器上的负载,因为每秒最大(峰值)每秒约有400个活动用户(大多数情况下为50-100 u / s) )。
但是大多数页面的每个用户都有一些不同的数据,例如用户的仪表板概述,大多数数据是相同的,但是每个用户需要更新的数字却有所不同。
P.S。该网站在PHP 7.3.4上运行
答案 0 :(得分:5)
opcache.memory_consumption
TLDR:生产代码应始终启用OPCached。
答案 1 :(得分:4)
OPcache仅缓存PHP脚本的内部操作码表示,而不缓存其输出。执行的查询或页面显示的内容对OPcache的行为没有影响。
此缓存将提高所有PHP网页的性能。因此,应始终在生产站点上启用它。
答案 2 :(得分:2)
每个PHP脚本都在运行时进行编译, 将人类可读的代码转换成机器可以理解的代码需要花费时间。
OpCache是字节码缓存引擎,它将脚本仅编译一次为字节码脚本-这样可以节省时间-然后将预编译的脚本存储在内存中,这将提高PHP应用程序的性能。
我认为您缺少的是opcache不会缓存脚本的结果,而只是编译脚本。
请注意,如果该方法本身针对每个用户都在更改,则此方法不好 还是从-例如-数据库
加载答案 3 :(得分:0)
此方法的一般观点 php缓存,无论它是APC缓存还是opcache,还是一种了不起的策略,通常应该将php性能提高50% 由于它如下 当php脚本受到攻击时,这涉及三个主要步骤
脚本的1-parse
脚本的2编译
3输出
APC缓存或充当中介,因为它以已编译的形式保存php脚本,因此php将直接在输出阶段启动,这不会影响查询,但会提高查询MySQL或其他语句的速度SELECT之类的东西,但是它涉及到像PDO这样的扩展的执行,因此它将变得更快
您可以按照以下方式对扩展名进行分类
适用于php 5的APC或Xcache
在新的php版本中,请使用opcache
它们都有相同的原理 一些像APC的开发者,其他像opcache 例如,流行的购物平台X-cart使用xcache。