オペコードのキャッシュにより PHP がさらに強力になります

PHPz
リリース: 2023-03-06 15:02:02
オリジナル
1600 人が閲覧しました

ご存知のとおり、php はインタープリター言語であり、その実行は次のプロセスに分割できます:

  1. スキャン (字句解析)、PHP コードを言語フラグメント (トークン) に変換

  2. 解析、トークンはシンプルで意味のある式に変換され

  3. Compilation、式がOpocdesにコンパイルされて

  4. Execution、そしてOpcodeが一度に1つずつ順番に実行されることで、PHPスクリプトの機能が実現されます。

この場合、同じファイルに対するリクエストを繰り返すと、PHP スクリプトの継続的な解析、コンパイル、実行が必要となり、多くのリソースが消費されます。

PHP の従来の動作モード:

オペコードのキャッシュにより PHP がさらに強力になります

この問題を解決するために、オペコード

キャッシュテクノロジーが登場しました。

それでは、オペコードキャッシュとは何ですか?

インタプリタはスクリプト コードの分析を完了すると、オペレーション コード (Operate Code、opcode) とも呼ばれる、直接実行できる中間コードを生成します。オペコード キャッシュは、コンパイルされたオペコード コードをメモリにキャッシュし、次回このスクリプトを実行するときに、キャッシュされたオペコード コードを直接見つけて、中間ステップを必要とせずに最後のステップを直接実行することを目的としています。 CPU とメモリのオーバーヘッドを削減します。

インタプリタはスクリプト コードの分析を完了すると、オペレーション コード (Operate Code、opcode) とも呼ばれる、直接実行できる中間コードを生成します。オペコード キャッシュは、コンパイルされたオペコード コードをメモリにキャッシュし、次回このスクリプトを実行するときに、キャッシュされたオペコード コードを直接見つけて、中間ステップを必要とせずに最後のステップを直接実行することを目的としています。 CPU とメモリのオーバーヘッドを削減します。

キャッシュ動作モード:

オペコードのキャッシュにより PHP がさらに強力になります

opcacheは、オペコードキャッシュツールです。

Opcache と他のキャッシュ ツールとの最大の違いは、その利点とも言えますが、PHP ソース コード ツリーに組み込まれ、公式製品になっているのに対し、常に PHP

で更新されることです。他のものは長い間更新されておらず、現在、新しいバージョンの PHP はサポートされていないか、互換性が不十分です。次に、テスト後、opcache は他のツールよりも効率的です。

では、opcache を有効にするにはどうすればよいでしょうか?

opcahce が組み込みツールとして PHP ソース ツリーに追加されたため、推奨される構成は次のとおりです:

zend_extension=.././...php_opcache.dll(路径)
opcache.memory_consumption=128   #共享内存opcache.interned_strings_buffer=8   #存储临时字符串opcache.max_accelerated_files=4000   #缓存文件数opcache.revalidate_freq=60  #缓存时间opcache.fast_shutdown=1opcache.enable_cli=1 opcache.enable=1   #是否开启opcode缓存
ログイン後にコピー

以前の; を削除するだけです。

もちろん、opcache には多くの構成があるため、ここではすべてをリストすることはしません。上記の構成は標準的な構成であり、一般的なニーズを満たすことができます。

理論的には、PHP ファイルが大きくなり、ロジックが複雑になればなるほど、opcache の効果はより明白になり、速度と同時並行性の点で大きな役割を果たします。

ローカル環境でのテスト結果は次のとおりです (コンピューターのパフォーマンスには限界があります):

オペコードのキャッシュにより PHP がさらに強力になります

サービスサーバーテスト:

オペコードのキャッシュにより PHP がさらに強力になります

オペコードのキャッシュにより PHP がさらに強力になります

効率が大幅に向上しました。

opcache はファイルの最初の実行のオペコードをキャッシュするため、開発中にコードが何度も変更されることに注意してください。結果は変わりません... .

opcache キャッシュを手動でクリアするには、opcache_reset() を実行してクリアする必要があるため、opcache がオンラインで構成されており、クリアする必要がある場合は、この関数を使用できます。

以上がオペコードのキャッシュにより PHP がさらに強力になりますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート