根据博客文章,这似乎是微不足道的。从4.4开始,显然Symfony会生成一个预加载脚本,该脚本必须在中设置php.ini
:
opcache.preload=/path/to/project/var/cache/prod/App_KernelProdContainer.preload.php
我在本地Docker环境中进行了一些测试,结果如下:
没有OPcache的PHP 7.3(当前)
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)
带有OPcache的PHP 7.4,无需预加载(Apache + modphp)
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。当我能够使用此预加载功能时,我将重新验证该答案。在总的来说,我很深刻的印象,+ 30%的性能仅仅通过升级从PHP 7.3
来7.4
。