配置文件php.ini
; On windows:
extension_dir = "E:\php8\ext"
zend_extension=opcache
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1
; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=1
;添加
opcache.jit=1205
opcache.jit_buffer_size=64M
说明:
- 尽量使用12x5型的配置,此时应该是效果最优的
- 对于x, 如果是脚本级别的,推荐使用0, 如果是Web服务型的,可以根据测试结果选择3或5
0~5代表的意思:
- 0: PHP脚本载入的时候就JIT
- 1: 当函数第一次被执行时JIT
- 2: 在一次运行后,JIT调用次数最多的百分之(opcache.prof_threshold * 100)的函数
- 3: 当函数/方法执行超过N(N和opcache.jit_hot_func相关)次以后JIT
- 4: 当函数方法的注释中含有@jit的时候对它进行JIT
- 5: 当一个Trace执行超过N次(和opcache.jit_hot_loop, jit_hot_return等有关)以后JIT
测试代码:
function simple() {
$a = 0;
for ($i = 0; $i < 90090000; $i++)
$a++;
return $a;
}
$start = microtime(true);
simple();
echo round(microtime(true)-$start,3).'秒';
不开启opchace不开启jit结果:0.743秒, 开启opchace不开启jit结果:0.743秒, 开启opchace开启jit结果:0.116秒,性能确实提升不少。