宝塔安装PHP 8.5并开启opcache(含JIT配置)

背景

无意间看到PHP 8.5 似乎对opcache做了增强。

JIT 编译器全面增强

JIT(即时编译器)的优化是性能提升的核心驱动力。
  • 默认启用与策略优化:PHP 8.5 默认启用 JIT 的 tracing 模式,并且 OPcache 的 JIT 策略更加激进,对热点代码的覆盖率从 PHP 8.4 的约 65% 提升至 78%,这意味着更多的代码路径能被编译成高效的机器码执行
  • 执行效率飞跃:对于数学计算、循环等 CPU 密集型任务,JIT 的优化效果尤为突出,性能提升可达 35%。实测数据显示,在 JIT 优化后,特定脚本的执行时间可从 120ms 大幅降低至 35ms

于是我就试试....

 

操作说明

安装 PHP 8.5

自行前往宝塔的应用商店安装PHP 8.5 。

目前宝塔提供的版本是 8.5.2,据说最新的8.5.5对opcache又做了增强。

 

配置opcache

和PHP 8.2不同的是,opcache扩展已经集成在PHP中了,不需要单独安装了。

但是宝塔的PHP的配置修改和性能调整中没有涉及到启用和配置opcache的内容。

换句话说,如果你不去配置文件中手动修改配置,那么opcache就是未开启状态。

请在配置文件中做以下修改,然后重启PHP服务。

;以下内容是原有的配置去除配置前的分号就可以开启
; 开启 OPcache 功能
opcache.enable=1

; 开启 CLI 模式的缓存 (允许命令行测试性能)
opcache.enable_cli=1

; 主缓存内存,从默认的 128M 加大到 256M
opcache.memory_consumption=256

; 内部字符串缓冲区,适当调大
opcache.interned_strings_buffer=16

; 如果你有很多 PHP 文件 (超过 1 万个),可以调大哈希表
opcache.max_accelerated_files=10000


;以下为手动添加的配置

; 1. 分配 JIT 编译专用内存,必须设置
opcache.jit_buffer_size=256M

; 2. 设置 JIT 编译模式
; 如果是纯计算密集型任务,可以尝试 1255
opcache.jit=1205

; 3. (可选) 生产环境优化:关闭时间戳验证
; 注意:开启后,代码更新需要手动重启 PHP (systemctl restart php-fpm)
; 开发环境请保持 opcache.validate_timestamps=1 (即不修改此项)
opcache.validate_timestamps=0


 

关于冷启动

PHP 8.5 JIT 的一个核心特性,被称为 “冷启动” (Cold Start)

意味着同一类PHP程序的首次访问会比较慢,比如你同一台服务器上有多个WP系统网站,只要访问了其中一个网站就可以完成冷启动了。

一旦冷启动完成,opcache+jit就开始高效工作,加快PHP访问速度。

 

性能对比

两个版本扩展插件完全一样,itdog网站测速(快速测试&排除海外),网站已启用 WP Super Cache 插件。

在网络非常好的情况下,可以看出下载速度还是提升挺明显的,提高了29%。

中高负载可能效果会更好点。

PHP版本 测试轮次  总耗时 s  解析 s  连接 s  下载 s
PHP 8.2.28 第一轮  0.1738  0.0080  0.0329  0.0950
第二轮  0.1712  0.0050  0.0321  0.0959
第三轮  0.1712  0.0050  0.0321  0.0959
均值  0.1720  0.0060  0.0324  0.0956
PHP 8.5.2 第一轮  0.1390  0.0033  0.0323  0.0678
第二轮  0.1384  0.0028  0.0323  0.0675
第三轮  0.1398  0.0028  0.0326  0.0682
均值  0.1391  0.0030  0.0324  0.0679
提速  0.0329  和PHP无关  -0.0000  0.0277
提速% 19.14% -0.03% 29.01%
上一篇 BT面板+OpenClaw+钉钉(文档+表格)踩坑全记录