php8:开启opcache和JIT(php 8.3.9)
一,配置文件中的项:
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=240
opcache.save_comments=0
opcache.error_log=/data/logs/phplogs/opache_error.log
opcache.enable=1 # 开关
opcache.enable_cli=0 # 命令行是否生效
opcache.memory_consumption=128 # 使用内存
opcache.max_accelerated_files=10000 # 加速文件数量
opcache.revalidate_freq=240 # 240检查一次文件修改时间
opcache.save_comments=0 # 缓存文件不包括注释
opcache.error_log=/logs/opache_error.log # 指定错误日志的路径
另外也要开启扩展:
zend_extension=opcache
效果:
二,开启JIT
#启动JIT
opcache.jit_buffer_size=128m
opcache.jit=1205
说明: jit_buffer_size 一项用来指定jit可用的缓存大小
jit的取值说明:
opcode.jit
是有点复杂的配置值。它接受disable
,on
,off
,trace
,function
,4 位值(4-digit)(不是位掩码),按顺序排列 4 个不同的标志。。
disable
:在启动时完全禁用JIT功能,并且在运行时无法启用。off
:禁用,但是可以在运行时启用JIT。on
:启用tracing
模式。tracing
:细化配置 的别名1254
。function
:细化配置 的别名1205
。
PHP JIT接受tracing
或function
作为表示配置组合的简单配置。
除tracing
和function
别名外,该opcache.jit
伪指令还接受4位数字的配置值。它可以进一步配置JIT行为。
4位配置值的格式为CRTO
,其中每个位置允许单个标记指定的字母数字值。
三,增加一项:
内部字符串驻留buffer,单位M
opcache.interned_strings_buffer=32
;PHP使用了一种叫做字符串驻留(string interning)的技术来改善性能。
例如,如果你在代码中使用了1000次字符串“foobar”,在PHP内部只会在第一使用这个字符串的时候分配一个不可变的内存区域来存储这个字符串,
其他的999次使用都会直接指向这个内存区域。
这个选项则会把这个特性提升一个层次——默认情况下这个不可变的内存区域只会存在于单个php-fpm的进程中,
如果设置了这个选项,那么它将会在所有的php-fpm进程中共享。
在比较大的应用中,这可以非常有效地节约内存,提高应用的性能。
这个选项的值是以兆字节(megabytes)作为单位,如果把它设置为16,则表示16MB,默认是8MB
默认值:
opcache.interned_strings_buffer=8