PHP実行までの流れとOPcache

  • 投稿者:
  • 投稿カテゴリー:PHP

PHP実行の流れ

PHP4以降、Zend Engineをスクリプト言語を処理するエンジンとして利用している
(Zend EngineはPHP Licenseに従った、フリーかつオープンソースなソフトウェア)

流れとしては、
PHPプログラム→レキサー→トークン生成→パーサー→オペコード生成→実行マシンがエグゼキュータによってオペコードを実行
オペコード生成:読み込まれたソースコードはオペコード(opcode)と呼ばれる内部状態に変換される
レキサー:PHPプログラムを解析し、構文をばらばらのトークンに分解する
パーサー:レキサーによって生成されたトークンをパースし、オペコードへ変換する

OPcache

プログラムを実行するたびにソースコードからオペコードへ変換していると処理性能が落ちるため
一度変換したオペコードをキャッシュとして再利用する。この仕組みのことをオペコードキャッシュと呼ぶ
OPcache は、プリコンパイルされたスクリプトのバイトコードを共有メモリに格納することで、PHP のパフォーマンスを向上させる
PHP はリクエスト毎にスクリプトをロードし、パースする必要がなくなる
PHP5.5.0以降に拡張モジュールとしてバンドルされている