检测 PHP 是否使用 JIT 编译并从运行脚本启用 JIT 的最简单方法是什么?
问问题
2614 次
3 回答
6
您可以通过调用直接查询 opcache 设置opcache_get_status()
:
opcache_get_status()["jit"]["enabled"];
或在以下位置执行查找php.ini
:
ini_get("opcache.jit")
这是一个整数(以字符串形式返回),其中最后一位表示 JIT 的状态:
0 - don't JIT
1 - minimal JIT (call standard VM handlers)
2 - selective VM handler inlining
3 - optimized JIT based on static type inference of individual function
4 - optimized JIT based on static type inference and call tree
5 - optimized JIT based on static type inference and inner procedure analyses
于 2020-06-30T09:39:58.870 回答
2
opcache_get_status()
禁用 JIT 时将无法工作,并会引发致命错误。
echo (function_exists('opcache_get_status')
&& opcache_get_status()['jit']['enabled']) ? 'JIT enabled' : 'JIT disabled';
我们必须在php.ini
文件中对 JIT 进行以下设置。
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1 //optional, for CLI interpreter
opcache.jit_buffer_size=32M //default is 0, with value 0 JIT doesn't work
opcache.jit=1235 //optional, default is "tracing" which is equal to 1254
于 2020-10-07T22:38:48.120 回答
1
php -i | grep "opcache"
checking:
opcache.enable => On => On
opcache.enable_cli => On => On
opcache.jit => tracing => tracing
于 2021-01-08T16:07:06.453 回答