PHP8 中的 JIT
PHP 8 Just In Time(JIT)编译器带来的影响是毋庸置疑的。但是到目前为止,我发现关于 JIT 应该做什么却知之甚少。
经过多次研究和放弃,我决定亲自检查PHP源代码。结合我对C语言的一些知识和我目前收集到的所有零散信息,我提出了这篇文章,我希望它能帮助您更好地理解PHP的JIT。
简单一点来说 : 当JIT按预期工作时,您的代码不会通过Zend VM执行,而是作为一组CPU级指令直接执行。
理解 PHP 8 的 JIT
使用 JIT 提速
安装 OPcache
首先你得安装 OPcache,如何安装 OPcache 请看这篇文章:WordPress使用OPcache
使用 JIT
编辑 php.ini,添加以下代码:
;加载php_opcache拓展
zend_extension=php_opcache
;开启opcache,关闭则不会执行jit
opcache.enable=1
;开启cli模式opcache
opcache.enable_cli=1
;开启jit的debug
opcache.jit_debug=1
;默认是tracing,也可以function,官方最近值是1255
opcache.jit=1255
opcache.jit_buffer_size=100M

检测是否生效
创建一个名为 "test.php" 的 PHP 文件,放在你的网站根目录里,并在里面添加如下代码:
<?php var_dump(opcache_get_status()['jit']);

然后访问:https://www.youdomain.com/test.php

如果enabled和on是正确的,那就ok了!
Comments 4 条评论
感谢分享,纯运算代码测了一下,开启 jit 后效率提升 20%+,果断到服务器开启了?
还有文章里那篇文章点过去是你博客登录页面
@小熊 感谢指正,已修改
我用的1205不过貌似12×5都没问题的