今回は、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());?>
apc.stat=off
<p style="margin-bottom: 7px; margin-top: 14px;">xdebug.profiler_output_dir = /tmp/xdebug<br/>xdebug.profiler_output_name = cachegrind.out.%p</p>
xdebug.trace_output_dir = /tmp/xdebug xdebug.trace_output_name = trace.%c
Laravel ORM Model::find キャッシュ メソッドの詳細な説明
以上がPHP でのオペコード キャッシュの使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。