编程

PHP 8.4: Opcache: INI 对 JIT 启用方式的更改

859 2024-02-29 00:19:00

PHP 8.0 添加了 JIT 编译支持。默认禁用 JIT,并且有两个切换切换开关,opchache.jitopcache.jit_buffer_size 用来控制 PHP 主要的功能模式以及 JIT 使用的缓冲大小(buffer size)。

在 PHP 8.4 之前,其默认的 INI 配置值为:

opcache.jit=tracing
opcache.jit_buffer_size=0

设置 opcache.jit_buffer_size INI 值可以启用 JIT,这不并不直观,因为 opcache.jit 也接受 opcache.jit=disable 值。

 opcache.jit=tracing
-opcache.jit_buffer_size=0
+opcache.jit_buffer_size=64M

在 PHP 8.4 中,这两个配置项的默认值也做了如下修改。在 PHP 8.4 中,JIT 仍然默认是禁用的。唯一的差别是 INI 的默认值做了修改。

-opcache.jit=tracing
+opcache.jit=disable

-opcache.jit_buffer_size=0
+opcache.jit_buffer_size=64M

注意即使默认值做了修改,JIT 默认仍然是禁用的。

向后兼容性影响

这是对默认值的修改,不过 JIT 仍然默认禁用。未修改默认 opchache.jit* 配置值的应用不会有任何影响。

单独使用  opcache.jit_buffer_size 配置值启用 JIT 的 PHP 应用,需要使用 opcache.jit=tracing 来启用 JIT,因为 opcache.jit 的默认值在 PHP 8.4 中已经从 tracing 改为 disable

; Enable JIT, and set buffer size to 128 MB.
+opcache.jit=tracing
opcache.jit_buffer_size=128M