JIT时php8的重要功能之一,可以极大的提高性能;
JIT编译器集成在了Opcache插件中,仅在启动Opcache插件才有效
Opcache将 PHP 脚本编译后的字节码存储到内存中,以避免每次执行脚本时重新解析和编译,从而提高 PHP 应用程序的性能和响应速度。
Opcache开启
php.ini文件
将zend_extension=opcache前面的‘;’号去掉,就相当于开启了opcache
Opcache配置
PHP: 运行时配置 - Manual
opcache.enable=1;opcache.enable_cli=0;opcache.memory_consumption=128;
opcache.interned_strings_buffer=8;opcache.max_accelerated_files=10000这五个前面的;号也全部去除
再在opcache.max_accelerated_files=10000新增下面两段配置就可以了
opcache.jit=tracing
opcache.jit_buffer_size=100M
测试效果:
<?php
$satrt = microtime(true);
$total = 0;
for($i = 0;$i<1000000;$i++){
$total += $i;
}
echo "Count:".$i.",Total".$total."\n";
$end = microtime(true);
$spend = floor(($end - $satrt)*1000);
echo $spend;
?>
开启前:
开启后:
问题汇总:
集成环境为何无效?
php.ini配置文件修改失败,到集成环境页面的设置中打开php.ini配置文件
如何检测是否开启JIT?
echo "JIT is " . (ini_get('opcache.jit') ? "enabled" : "disabled") . "\n";
打印enabled表示开启成功;打印disabled表示开启失败