我鬼知道の博客

PHP8 使用 JIT

PHP8 使用 JIT缩略图

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了!

退出移动版