我想在我的PHP 7.4生产服务器上启用opcache预加载 (RFC)。
如果有变化,我正在使用Symfony 4。
我想在我的PHP 7.4生产服务器上启用opcache预加载 (RFC)。
如果有变化,我正在使用Symfony 4。
php.ini
中设置:opcache.preload=/path/to/project/var/cache/prod/App_KernelProdContainer.preload.php
Requests per second: 8.75 [#/sec] (mean)
Time per request: 114.402 [ms] (mean)
没有OPcache的PHP 7.4
Requests per second: 11.44 [#/sec] (mean)
Time per request: 87.417 [ms] (mean)
使用Apache + modphp的PHP 7.4版本,带有OPcache但不带预加载功能。
Requests per second: 30.25 [#/sec] (mean)
Time per request: 33.053 [ms]
使用带有OPcache的PHP 7.4,不使用预加载(nginx + php fpm)
Requests per second: 40.00 [#/sec] (mean)
很不幸,我无法启用预加载 :( 我在Apache+Mod和Nginx+FPM中都遇到了以下错误:
double free or corruption (!prev)
child pid 17 exit signal Aborted (6), possible coredump (…)
不过,这个功能看起来像是一个WIP。当我能够使用这个预加载功能时,我会重新验证这个答案。总体而言,我印象深刻,仅通过从PHP 7.3
升级到 7.4
,性能提高了30%。
首先,您应该添加:
opcache.preload=/path/to/project/preload.php
打开你的php.ini
文件
然后在你的PHP脚本中,你应该传递opcache_compile_file($file);
每个你想要预加载的文件。