PHP 8.5.7 启用 JIT 需先启用 OPcache,设置 opcache.jit_buffer_size>0,并配置 opcache.jit(如1235),同时关闭 opcache.validate_timestamps 等配套参数以保障稳定性。

PHP 8.5.7 中开启 JIT 加速,核心前提是正确配置 OPcache 扩展,并设置合理的 JIT 编译参数。JIT 不是独立扩展,而是 OPcache 的内置能力,必须在启用 OPcache 的基础上才能工作。
基础启用步骤
只需三步即可激活 JIT:
- 确保 OPcache 已启用:
opcache.enable=1(必须为 1,且不能被 CLI 或 FPM 配置覆盖禁用) - 分配足够 JIT 缓冲区:设置
opcache.jit_buffer_size(如256M或1G),值必须大于 0,否则 JIT 自动失效 - 指定 JIT 模式与优化级别:通过
opcache.jit设置数值编码(如1255、1235或tracing)
opcache.jit 参数详解
该参数控制 JIT 的触发策略和优化深度,格式为 ABC 三位数或字符串,每位含义如下:
-
第一位 A:JIT 策略类型
•0= 禁用
•1= tracing(追踪热点路径,适合含循环/递归的计算逻辑)
•2= function(按函数粒度编译,适合高频调用小函数) -
第二位 B:是否启用寄存器分配与类型特化(推荐设为
2) -
第三位 C:是否启用函数内联、循环展开等高级优化(
5表示全开,3表示基础优化)
常用组合:
立即学习“PHP免费学习笔记(深入)”;
-
1235:推荐生产环境使用 — 启用 tracing + 寄存器分配 + 全优化(内联、循环展开、常量折叠) -
1255:更激进 — 追加 AVX 指令支持,适合数学密集型任务(如矩阵运算、AI 推理) -
tracing:字符串写法,等价于1000,仅启用基础追踪,调试友好、编译开销低
关键配套参数建议
JIT 效果高度依赖 OPcache 稳定性,以下参数必须同步检查:
-
opcache.validate_timestamps=0:生产环境务必关闭时间戳验证,避免缓存频繁失效导致 JIT 反复编译 -
opcache.revalidate_freq=60:开发环境可设为 60 秒,平衡热更新与 JIT 复用 -
opcache.max_accelerated_files=20000:防止文件数超限引发缓存驱逐 -
opcache.memory_consumption=256:单位 MB,建议 ≥256,保障 opcode 缓存容量 -
opcache.jit_hot_loop=64:循环执行次数阈值,达此值即标记为热点(默认 64,可微调) -
opcache.jit_hot_func=127:函数调用频次阈值,影响 JIT 编译触发灵敏度
验证是否生效
修改 php.ini 后重启 PHP-FPM 或 Web 服务器,运行:
php -v
若输出包含 JIT enabled,说明已加载;进一步确认可执行:
php -r "var_dump(opcache_get_status()['jit']);"
返回数组中 enabled 为 true,且 buffer_free 和 buffer_used 有非零值,即表示 JIT 正在工作并占用缓冲区。



















