OpCacheパフォーマンステストをお探しの場合は、このキャッシュエンジンの実装に関するAppDynamicsの記事を必ずお読みください。テストでは、Opcacheのインストールにより、Webサイトの平均応答時間が14%減少しました。 Webアプリケーションの異なるアクションの応答時間の短縮は、6%から74%まで変化しました。記事で説明したように、異なるコードパーツは、バイトコードキャッシングエンジンの実装から多かれ少なかれ利益を得る可能性があります。記事を詳細に読んで、最高のパフォーマンスブーストを得ることができる場所を確認することをお勧めします。
Opcacheのパフォーマンスに関する他のリソースを探している場合は、FideloPer.comとMassivesCale.comで例を確認してください。両方のテストでは、Opcacheのインストール後の応答時間が約50%減少したと報告しました。
2。私はすでにAPCキャッシュを使用しています。 Opcacheに移動する必要がありますか?まず、APCキャッシュは最新のPHPバージョンでは動作しません。 PHP 5.5はまったくサポートしていません。このような構成がアプリケーション全体を破る実行エラーにつながる可能性があると報告されているため、PHP 5.4にインストールすることもお勧めしません。 PHPアクセラレータに関するWikipediaの記事またはこのスタックオーバーフロースレッドを確認して、詳細を取得してください。 ただし、
OpcacheはPHP 5.5にバンドルされているため、このPHPバージョンでは間違いなく動作します。ドキュメントに書かれているように、5.2から5.4の古いPHPバージョンでインストールすることもできます。一般に、Opcacheは他のバイトコードキャッシュエンジンよりもPHP自体に密接に結合しています。これにより、より頻繁に更新され、エラーが少なくなる可能性があります(詳細についてはこちらをご覧ください)。APCからOpcacheに移行するときに覚えておくべき唯一の重要なことは、後者がデータキャッシングエンジンとして機能しないという事実です。既にAPCを実装している場合、データキャッシングサービスのインターフェイスとして機能するAPC_ADD()およびAPC_FETCH()関数を使用している可能性があります。 Opcacheはバイトコードキャッシングエンジンのみであるため、同様の機能を提供しません。 APCからOpcacheに切り替えることを計画している場合は、この制限を考慮することを忘れないでください。 APCユーザーランドの機能を維持したい場合は、APCUプロジェクトがあります(コメントでそれを指摘してくれたオスカーメリナに感謝します)。
既にOpcacheをインストールして構成している場合、実際にどのPHPファイルがキャッシュされているかを制御することが重要になる場合があります。キャッシュエンジン全体がバックグラウンドで動作し、訪問者またはWeb開発者に透明です。そのステータスを確認するには、そのような情報を提供する2つの関数のいずれかを使用できます:opcache_get_configuration()およびopcache_get_status()。幸いなことに、すべてのopcache構成とステータスデータを取得し、フレンドリーな方法で表示する準備されたスクリップがいくつかあります。自分でコードを書く必要はありません。以下のツールの1つを選択するだけです。
- Opcacheコントロールパネル、
- rasmus lerdorf、
によるopcache-status
- Pieter HordijkによるOpcachegui、
- Andrew CollingtonによるOpcache-gui。
注釈を使用するツールやフレームワークで重要な設定もあります。 Doctrine、Zend Framework 2、またはPHPユニットを使用する場合は、opcache.load_commentsとopcache.save_commentsの設定をtrueに設定することを忘れないでください。その結果、ファイルからのドキュメントのコメントは、Opcacheによって生成された事前コンパイルコードにも含まれます。この設定により、混乱なしに注釈を使用することができます。
プロジェクトが特定のフレームワークまたはWebアプリケーションに基づいている場合、OpCache構成に関するガイドラインについてドキュメントを確認することをお勧めします。たとえば、ここにはMoodleのサンプル構成があります。
プロジェクトに他のプロジェクトよりも頻繁に変更されているファイルが含まれている場合、キャッシュからそれらを除外できます。 Webサイトの構成ディレクティブを含むPHPファイルを扱う場合、特に便利かもしれません。それらがキャッシュされないようにすると、そのようなファイルに入れられた各変更がアプリケーションにすぐに表示されることを確認できます。
Opcacheを使用すると、キャッシュエンジンで処理されないすべてのパスを含むブラックリストファイルを指定できます。 opcache.blacklist_filenameディレクティブを設定した後、指定したパスに適切なファイルリストを配置するだけです。ドキュメントページには、キャッシュから特定のファイルを除外する方法に関するいくつかの例が含まれています。6。 Opcacheが有効になっている単一のサーバーで開発環境と生産環境の両方を実行するにはどうすればよいですか?
サーバーがいくつかのアプリを実行している場合、それらの一部でのみOpcacheを使用することをいとわない場合があります。開発およびテストサイトは、Bytecodeキャッシングを有効にすることが望ましくなく、善よりも多くの害を引き起こす可能性があるこのような環境の例です。
プロジェクトのトップファイルでfalseを設定できます。他の場所に保管しながらキャッシュを無効にします。
要約この一連の一般的な質問と回答が、PHPアプリケーションでOpcacheを使用する方法に関する実用的な情報を提供することを願っています。主題に関する他の質問やコメントがある場合は、以下に投稿してください。 Google Plusから連絡することもできます。
opcacheは、共有メモリにプリコンパイルされたスクリプトバイトコードを保存することによりPHPパフォーマンスを向上させる強力なPHP拡張です。これにより、各リクエストでPHPがスクリプトをロードして解析する必要性がなくなり、実行時間とメモリの使用が削減されます。トラフィックや複雑なアプリケーションが高いウェブサイトにとって特に有益です。これは、荷重時間を大幅に高速化し、全体的なパフォーマンスを向上させることができるためです。 PHPスクリプトの出力を保存するキャッシングメカニズムは、PHPスクリプトの事前にコンパイルされたバイトコードを保存します。これは、リクエストが作成されるたびにPHPコードを再コンパイルする必要がないことを意味します。これにより、多くの処理時間とリソースが節約されます。これにより、OpcacheはPHPパフォーマンスを改善するためのより効率的かつ効果的なソリューションになります。 OpCacheパフォーマンスを最適化するために調整できるいくつかの構成ディレクティブがあります。たとえば、opcache.memory_consumptionを増やして、事前コンパイルされたbytecodeを保存するために、より多くのメモリを割り当てることができます。また、opcache.revalidate_freqを調整して、opcacheがスクリプトの変更をチェックする頻度を制御することもできます。 Opcacheを他のキャッシュメカニズムで使用できますか? Redis。 Opcacheは、事前縮小されたバイトコードをキャッシュすることでPHPのパフォーマンスを向上させますが、他のキャッシュメカニズムは、データベースクエリまたはPHPスクリプトの出力をキャッシュすることでパフォーマンスをさらに向上させることができます。 opcacheは、トラフィックや複雑なアプリケーションの高いウェブサイトにとって特に有益です。時間を読み込み、全体的なパフォーマンスを向上させます。ただし、パフォーマンスの増加が目立たない可能性があるため、トラフィックや単純なアプリケーションが低いウェブサイトでは効果的ではない場合があります。また、ファイルベースのセッションやファイルベースのユーザーデータストレージの問題を引き起こす可能性があるため、あらゆる種類のWebサイトやアプリケーションには適していません。opcacheはすべてのPHPバージョンと互換性がありますか?ただし、デフォルトではPHP 5.5の時点で含まれています。以前のバージョンでは、PECL拡張機能としてインストールする必要があります。
以上がOpcacheの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。