PHP 8 具有优化性能的新功能以及提高脚本速度的新功能,称为 JIT(即时)编译。
纯解释型编程语言没有编译步骤,直接在虚拟机上执行代码。 大多数解释语言,包括 PHP,实际上都有一个轻量级的编译步骤来提高性能。
另一方面,提前(AOT)编程语言要求代码在运行之前进行编译。
即时 (JIT) 编译是解释器和提前编译的混合模型,其中部分或全部代码通常在运行时进行编译,而不需要开发人员手动编译。
该选项在 opcache 模块中控制。 该模块旨在加速脚本的运行,启用JIT进一步加快脚本的执行速度——即 允许双加速。
比较速度增加图。
在我们的示例中,我们将使用 php 8.3。
1. 检查模块可用性
php8.3 -m | grep OPcache
在输出中,它可能在常规部分和 Zend 模块部分出现 2 次。 这意味着它已启用。
1.1 如果关闭,则打开
在我们的示例中,我们使用 Debian 12,您的路径可能有所不同。
nano /etc/php/8.3/fpm/conf.d/10-opcache.ini
; configuration for php opcache module
; priority=10
opcache.enable=1
opcache.revalidate_freq=0
opcache.validate_timestamps=1
opcache.max_accelerated_files=10000
opcache.memory_consumption=192
opcache.max_wasted_percentage=10
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
zend_extension=opcache.so
opcache.jit=on
1.2 在php设置中启用该模块
nano /etc/php/8.3/fpm/php.ini
添加到配置行的最末尾:
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.jit_buffer_size=256M
opcache.jit=1235
1.3 重启fpm
service php8.3-fpm restart
service php8.3-fpm status
1.4 让我们再次检查该模块是否存在
php8.3 -m | grep OPcache
1.5 使用脚本检查
让我们创建一个包含以下内容的 php 文件
touch info.php
nano info.php
<?php
phpinfo();
?>
通过浏览器 http[s]://domain.tld/info.php 打开脚本并使用 Ctrl + f 搜索单词 opcache,找到设置参数。
这些行表明 OPcache 模块和 JIT 附加组件已启用。
暂时没有评论