今回は、PHP でのオペコード キャッシュの使用について詳しく説明します。PHP でオペコード キャッシュを使用する際の 注意事項 について、実際のケースを見てみましょう。
1. オペコードとはインタープリターはコードを分析した後、オペコードと呼ばれる中間コードを生成します2. インタープリターとコンパイラーの違いその後、インタープリターは中間コードを生成します。中間コードは直接実行され、ランタイムの制御は依然としてインタプリタの手に渡ります。 コンパイラは中間コードを生成し、そのコードをさらに最適化して直接実行できるターゲット プログラムを生成しますが、その制御はターゲット プログラム内にあり、何も実行しません。コンパイラと関係があります。 3.php はインタープリタ型言語であり、その原理は字句解析、構文解析、意味解析などを含むコンパイルに似ています。php インタープリタのコア エンジンはzend エンジンです
4 はどうでしょうか。 php コードの一部のオペコードを表示します 5.opcodeが生成されますまず、字句解析を行う必要があります。スクリプトコードは、一連の単語の組み合わせとして、インタプリタはこれらの単語を分類してマークする必要があります たとえば、このファイルでは、php ソース コード パッケージ内のzend/zend_lang_scanner.l を調べます。印刷に対応するマークを見つけることができます。 T_PRINT
マークを見つけたら、次のステップは構文分析です。zend/zend_langage_parser.yで、T_PRINTに対応する
関数を見つけます。次に、zend/zend_compile.cで関数の実装コードを見つけます。この機能はオペコード変換を実装しています。すべてのオペコードはユーザー整数 で表されます。
6. オペコード キャッシュをオンにする オペコードの生成にはシステム オーバーヘッドが必要です。このオーバーヘッドはかなり大きいため、コンパイルの繰り返しを避けるために、PHP の最適化ではオペコード キャッシュをオンにする必要があります。 PHP のオペコード キャッシュには、APC、eAccelerator、XCache が含まれており、これらはすべてオペコードを共有メモリに配置します。 APCを例に挙げます: php.iniでapc.cache_by_default = onを設定します
<?php print_r(apc_cache_info());?>、7を通じてキャッシュのステータスを確認できます。オペコードキャッシュの有効期限が切れますオペコードキャッシュは期限切れになります。有効期限が切れた場合は、再度生成する必要がありますもちろん、有効期限チェックメカニズムをスキップして、サーバーを再起動することでプログラムコードの変更が有効になるように php.ini で
apc.stat=offを設定することもできます。 8. スクリプトの追跡と分析には、xdebug を使用してパフォーマンス トラッカーを実装し、プログラムの実行ボトルネックを見つけてプログラムを最適化できます。
<p style="margin-bottom: 7px; margin-top: 14px;">xdebug.profiler_output_dir = /tmp/xdebug<br/>xdebug.profiler_output_name = cachegrind.out.%p</p>xdebug 関数の追跡:
xdebug.trace_output_dir = /tmp/xdebug xdebug.trace_output_name = trace.%cwincachegrind を使用して、ウィンドウの下に xdebug レポート ファイルを表示できます。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨書籍:
Laravel ORM Model::find キャッシュ メソッドの詳細な説明
以上がPHP でのオペコード キャッシュの使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。