ブログの投稿によると、これは簡単なようです。どうやら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)
PHP 7.4、OPcacheあり、プリロードなし(Apache + modphp)
Requests per second: 30.25 [#/sec] (mean)
Time per request: 33.053 [ms]
PHP 7.4、OPcacheあり、プリロードなし(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
からにアップグレードしただけで、パフォーマンスが+ 30%向上しました7.4
。