Opcache とは
PHP スクリプトを実行するたびに、スクリプトをバイトコードにコンパイルする必要があります。OPcache はバイトコードをキャッシュできるため、次回同じスクリプトが実行されるときは、が要求された場合、スクリプトを再コンパイルする必要がないため、スクリプトの実行時間が大幅に節約され、アプリケーションの実行速度が向上し、サーバーのオーバーヘッドも節約されます。
数字で語る
もちろん、どのような最適化が行われたのか知りたいのですが、パフォーマンスの向上はアプリケーションとサーバーの構成に大きく依存します。ベンチマークについての一般的な理解が必要です。
この目的のために、Apache ベンチマーク テストを実行するために、1 コア CPU、1G メモリという非常に低構成のマシンを特別に準備しました。私が要求するのは、Laravel 5.4 のデフォルトのウェルカム ページで、10 件の同時リクエストが 1 分間アクセスを継続できるようにするものです。OPcache をオフにした場合のベンチマーク結果は次のとおりです:
OPcache disabled: 10.18 requests per second
このような低構成のサーバーの場合、これは悪くはないが、もっと改善できるはずだ。 OPcache を有効にした場合のベンチマーク テストの結果は次のとおりです (デフォルトの OPcache 構成を使用):
Enabled with default values: 34.52 requests per second
その差は依然として大きいです。次に、OPcache 構成を最適化します。これにより、ベンチマーク テストのパフォーマンスが向上します。
Enabled with optimized values: 42.53 requests per second
これを使用できましたか?
素晴らしいように聞こえますが、その使用方法
まず、OPcache がサーバーにインストールされていることを確認する必要があります。PHP 5.5 以降、OPcache には次の機能があります。これは PHP のコアの一部となっているため、Laravel 開発者にとって、この拡張機能を手動でインストールする必要は基本的にありません。
もちろん、わからない場合は、phpinfo() を見て確認できます:
<?php phpinfo();
このスクリプトは、PHP にインストールされているすべての拡張機能を表示します。ページ内で「OPcache」を検索し、見つかった場合はインストールされていることがわかります。そうでない場合は、自分でインストールする必要があります。
次に、PHP 構成ファイルで OPcache を有効にする必要があります (デフォルトは閉じられています):
opcache.enable=1
次に、OPcache の最適化構成の作成を続けます:
opcache.memory_consumption=512
この設定は、OPcache に割り当てるメモリ領域 (単位: MB) を示します。64 より大きい値を設定するだけです。
opcache.interned_strings_buffer=64
この設定は、実際の文字列に割り当てる領域 (単位: MB) を示します。16 より大きい値を設定するだけです。
opcache.max_accelerated_files=32531
この構成は、キャッシュできるスクリプトの数を示します。この値は、プロジェクトに含まれるスクリプトの数にできるだけ近い (またはそれ以上) ように設定してください。
opcache.validate_timestamps=0
再検証スクリプトの構成値を変更します。0 (最高のパフォーマンス) に設定すると、PHP コードを変更するたびに OPcache を手動でクリアする必要があります。手動パージを望まない場合は、これを 1 に設定し、opcache.revalidate_freq を介して再検証間隔を構成できます。これにより、x 秒ごとに変更をチェックする必要があるため、パフォーマンスが低下する可能性があります。
opcache.save_comments=1
この設定ではスクリプトにコメントが残ります。一部のライブラリはこの設定に依存しており、オフにする利点が見つからないため、このオプションをオンにすることをお勧めします。
opcache.fast_shutdown=0
高速シャットダウンは、メモリをクリアするためのメカニズムを高速化しますが、ベンチマーク テストでは遅くなります。これにより、アプリケーションのパフォーマンスが向上する可能性がありますが、自分で試してみる必要があります。
最終的な構成の最適化は次のようになります:
opcache.enable=1 opcache.memory_consumption=512 opcache.interned_strings_buffer=64 opcache.max_accelerated_files=32531 opcache.validate_timestamps=0 opcache.save_comments=1 opcache.fast_shutdown=0
これらの構成値を試してみることができます。具体的な構成値は、アプリケーションのサイズとサーバー構成によって異なります。
最後に、この構成ファイルを保存して Web サーバーを再起動すると、アプリケーションは確実に高速化されます。
Laravel アプリケーションの準備
前述したように、opcache.validate_timestamps が 0 に設定されている場合、PHP コードを変更するたびに OPcache を手動でクリアする必要があります。この目的のために、OPcache クリーンアップを処理するための対応する Artisan コマンドを提供する拡張パッケージを作成しました: https://github.com/appstract/laravel-opcache。
拡張機能をインストールした後、次のコマンドを実行して OPcache をクリーンアップします:
php artisan opcache:clear
さらに、拡張機能パッケージには、プロジェクトの # で使用できる他の便利なツールもいくつか提供されています。 ## GitHub ページ にあります。
この記事は転載されたものです、元のアドレス: https://xueyuanjun.com/post/7326
以上がLaravel アプリケーションをより高速に実行しましょう。 (PHP OPcacheの利用)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。