PHP8开启JIT

发布时间 2023-06-25 10:17:56作者: 童年的回忆

JIT时php8的重要功能之一,可以极大的提高性能;

JIT编译器集成在了Opcache插件中,仅在启动Opcache插件才有效

Opcache将 PHP 脚本编译后的字节码存储到内存中,以避免每次执行脚本时重新解析和编译,从而提高 PHP 应用程序的性能和响应速度。

 

Opcache开启:

编辑php.ini文件,将zend_extension=opcache前面的‘;’号去掉

然后把opcache的几个配置项也开启 (去掉;)

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

 

测试:

function t(){
   $r = 0;
   for ($c = 0; $c < 1000000000; $c++) {
      $r += $c;
   }
}

$start = microtime(true);
t();              
$end = microtime(true);
$spend = round($end - $start, 3);
         
echo $spend;

将php.ini中的jit配置注释掉后,重启php-fpm运行代码

;opcache.jit=tracing

;opcache.jit_buffer_size=100M

 

重启php-fpm:

pkill -USR2 php-fpm

再将两句话的注释去掉,重启php-fpm运行代码:

 

关闭JIT运行:

5.88秒

打开JIT运行:

1.04秒

由此可见,JIT对数学计算的性能提升还是很大的