ホームページ  >  記事  >  バックエンド開発  >  PHP の OPcache 拡張機能の詳細な説明

PHP の OPcache 拡張機能の詳細な説明

青灯夜游
青灯夜游転載
2020-07-27 17:57:312903ブラウズ

PHP の OPcache 拡張機能の詳細な説明

OPcache は、PHP スクリプトのプリコンパイルされたバイトコードを共有メモリに保存することで、PHP のパフォーマンスを向上させます。プリコンパイルされたバイトコードを保存する利点は、PHP の読み込みと解析のオーバーヘッドが不要になることです。スクリプト。 PHP 5.5 以降のバージョンは、デフォルトでこの拡張機能にバインドされています。PHP 5.2、5.3、および 5.4 の以前のバージョンでは、» PECL 拡張機能の OPcache ライブラリを使用できます。

設定項目の説明

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

PHPマニュアルで推奨されている設定項目で、php.iniの途中に設定されています。各設定項目の説明は次のとおりです。

  • opcache.memory_consumption: OPcache の共有メモリ サイズ (メガバイト単位)。
  • opcache.interned_strings_buffer: 予約された文字列の保存に使用されるメモリのサイズ (メガバイト単位)。 5.3.0 より前のバージョンの PHP は、この設定ディレクティブを無視します。
  • opcache.max_accelerated_files: OPcache ハッシュ テーブルに保存できるスクリプト ファイルの数の上限。実際の値は、素数セット {223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987} 内で見つかった、設定値以上の最初の素数です。設定値の最小値の範囲は 200、最大値は PHP 5.5.6 以前では 100000、PHP 5.5.6 以降では 1000000 です。
  • opcache.revalidate_freq : スクリプトのタイムスタンプが更新されたかどうかを確認する期間 (秒単位)。 0 に設定すると、OPcache はリクエストごとにスクリプトの更新をチェックします。 opcache.validate_timestamps 構成ディレクティブが無効に設定されている場合、この設定は無視されます。
  • opcache.validate_timestamps : 有効にすると、OPcache は opcache.revalidate_freq 設定秒ごとにスクリプトが更新されたかどうかをチェックします。このオプションが無効になっている場合は、opcache_reset() 関数または opcache_invalidate() 関数を使用して OPcache を手動でリセットするか、ファイル システムの変更を有効にするために Web サーバーを再起動する必要があります。
  • opcache.fast_shutdown : 有効にすると、イベントを再開するために高速停止が使用されます。いわゆるクイック停止再開イベントは、割り当てられた各メモリ ブロックを順番に解放するのではなく、Zend エンジンに依存して、要求されたすべての変数のメモリを一度に解放するメモリ管理モジュールを指します。 PHP 7.2.0 以降、この設定ディレクティブは削除されました。高速停止再開イベントの処理は PHP に統合されており、PHP は可能な限りこれらの再開イベントを自動的に処理します。
    設定項目の詳細については、OPcache マニュアルを参照してください。

#OPcache 関数

OPcache は、バイトコードのキャッシュ ステータスを制御するためのいくつかの組み込み関数を提供します。 OPcache 拡張機能をオンにします。

  • opcache_compile_file: PHP スクリプトを実行せずにコンパイルしてキャッシュできます。パラメーター FILE を個別に使用する場合、これは必須であり、 FILE はスクリプトです。パス、例: opcache_compile_file('index.php')
  • opcache_get_configuration: opcache
  • の現在の構成情報をすべて取得します#opcache_get_status
  • : opcache の現在のキャッシュ情報を取得します。情報には、共有メモリ領域がいっぱいかどうかなどが含まれます。
  • opcache_invalidate
  • : スクリプト キャッシュを無効にします。スクリプト キャッシュの 2 つのパラメータがあります。 (スクリプト パス情報) は必須です。force (ブール値) はオプションです。force パラメータが true の場合、キャッシュは強制的に破棄されます。false または未入力の場合、スクリプトのキャッシュは変更された場合にのみ無効になります。スクリプトの時刻が、対応するバイトコードの時刻よりも新しいです。
  • opcache_is_script_cached
  • : スクリプトが OPCache にキャッシュされているかどうかを確認します。パラメーター FILE (ファイル パス) が必要です。
  • opcache_reset
  • : すべての opcache キャッシュを再チャージします次回コンパイルを実行するときはお待ちください

開発ノートローカル開発環境では、OPcache をオフにすることをお勧めします拡張子を拡張すると、キャッシュによってローカル デバッグが発生し、開発効率が低下する可能性があります。

#共有メモリに関する知識の拡張

共有メモリは、同じマシン内のアプリケーション間でデータを交換する効率的な方法です。プログラムのメモリの実行効率はディスク I/O の効率よりも高いため、メモリを適切に使用することでプログラムの効率を向上させることができます。そのアプリケーション シナリオには、Web リクエスト、データベース クエリ、テンプレート エンジンのキャッシュ、および現在の記事で説明されている PHP の OPcache コンパイル キャッシュが含まれます。

関連チュートリアルの推奨事項: 「

PHP チュートリアル

以上がPHP の OPcache 拡張機能の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjianshu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。