ホームページ >php教程 >php手册 >PHP のヒント: APC キャッシュを使用して PHP プログラムを最適化する

PHP のヒント: APC キャッシュを使用して PHP プログラムを最適化する

WBOY
WBOYオリジナル
2016-06-21 08:58:051396ブラウズ

Alternative PHP Cache (APC) は、無料で公開されている、PHP 用に最適化されたコード キャッシュです。これは、PHP 中間コードをキャッシュおよび最適化するための、無料でオープンかつ堅牢なフレームワークを提供するために使用されます。

Windows では、APC には c:tmp ディレクトリが必要で、このディレクトリは Web サーバー プロセスによって書き込み可能である必要があります。

1. インストール

PHP 拡張機能としてインストール

2. 構成

apc.enabled boolean

apc.optimization 最適化

オプションはスクリプトで変更できます

APC PHP.ini 設定オプションの詳細な説明

[APC]

のキャッシュと最適化に代替 PHP キャッシュが使用されます。 PHP 中間コード

apc.cache_by_default = On

;SYS

; デフォルトですべてのファイルのキャッシュを有効にするかどうか。

; Off に設定し、プラス記号で始まる apc.filters ディレクティブと一緒に使用すると、ファイルはフィルターに一致する場合にのみキャッシュされます。

apc.enable_cli = Off

;SYS

; CLI バージョンで APC 機能を有効にするかどうかは、テストとデバッグの目的でのみこのコマンドをオンにします。

apc.enabled = On

; APC が静的に PHP にコンパイルされており、それを無効にしたい場合は、これが唯一の方法です。

apc.file_update_protection = 2

;SYS

; 実行中のサーバー上のファイルを変更する場合は、アトミック操作を実行する必要があります。

; つまり、最初に一時ファイルに書き込み、次にファイルの名前を最終的な名前に変更 (mv) します。

; テキスト エディターや cp や tar などのプログラムはこのように動作しないため、不完全なファイルがバッファリングされる可能性があります。

; デフォルト値 2 は、ファイルにアクセスするときに、変更時間がアクセス時間から 2 秒未満であることが判明した場合、バッファリングは実行されないことを意味します。

; 運が悪い訪問者は不完全なコンテンツを取得する可能性がありますが、その悪影響はキャッシュによって拡大されません。

; すべての更新操作がアトミックであることを確認できる場合は、0 を使用してこの機能をオフにすることができます。

; IO 操作が多いためにシステムの更新が遅い場合は、この値を増やす必要があります。

apc.filters =

;SYS

; POSIX 拡張正規表現のカンマ区切りリスト。

; ソース ファイル名がいずれかのパターンに一致する場合、ファイルはキャッシュされません。

; 一致に使用されるファイル名は、絶対パスではなく、include/require に渡されるファイル名であることに注意してください。

; 正規表現の最初の文字が「+」の場合は、その式に一致するすべてのファイルがキャッシュされることを意味します。

; 最初の文字が「-」の場合は、一致するすべてのファイルがキャッシュされます。キャッシュされません。 「-」はデフォルト値であり省略可能です。

apc.ttl = 0

;SYS

; キャッシュ エントリがバッファ内に存在できる秒数。 0 はタイムアウトしないことを意味します。推奨値は7200~36000です。

; 0 に設定すると、バッファーが古いキャッシュ エントリでいっぱいになり、新しいエントリがキャッシュされなくなる可能性があります。

apc.user_ttl = 0

;SYS

; apc.ttl と似ていますが、各ユーザーの推奨値は 7200 ~ 36000 です。

; 0 に設定すると、バッファーが古いキャッシュ エントリでいっぱいになり、新しいエントリがキャッシュされなくなる可能性があります。

apc.gc_ttl = 3600

;SYS

; キャッシュ エントリがガベージ コレクション テーブルに存在できる秒数。

; この値は、キャッシュされたソース ファイル

の実行中にサーバー プロセスがクラッシュし、ソース ファイルが変更された場合でも、古いバージョンに割り当てられたメモリを確保します。この TTL 値に達するまでリサイクルされません。

; この機能を無効にするには、0 に設定します。

apc.include_once_override = Off

;SYS

; オフのままにしてください。そうしないと、予期しない結果が生じる可能性があります。

apc.max_file_size = 1M

;SYS

; このサイズを超えるファイルはキャッシュされません。

apc.mmap_file_mask =

;SYS

; APC が --enable-mmap (デフォルトで有効) を使用して MMAP サポートでコンパイルされた場合、

; ここでの値は、mmap モジュールに渡される mktemp スタイルのファイル マスクです (推奨値は「/tmp/apc.XXXXXX」です)。

; このマスクは、メモリ マップ領域をファイル バックアップするか共有メモリ バックアップするかを決定するために使用されます。

; 直接ファイルバックアップメモリ​​マッピングの場合は、「/tmp/apc.XXXXXX」 (正確に 6 つの X) に設定します。

; POSIX スタイルの shm_open/mmap を使用するには、「/apc.shm.XXXXXX」に設定する必要があります。

; 「/dev/zero」に設定して、匿名でマップされたメモリにカーネルの「/dev/zero」インターフェイスを使用することもできます。

; このディレクティブを定義しないことは、匿名マッピングの使用を強制することを意味します。

apc.num_files_hint = 1000

;SYS

; Web サーバーに含めることができるさまざまなソース ファイルのおおよその数 (推奨値は 1024 ~ 4096) )。

; よくわからない場合は、この設定は主に数千のソース ファイルを含むサイトに役立ちます。

apc.optimization = 0

; 最適化レベル (推奨値は 0)。

; 正の整数値はオプティマイザーが有効であることを示し、値が大きいほどより積極的な最適化が使用されます。

; 値を大きくすると、速度の向上が非常に制限される可能性がありますが、現在は実験中です。

apc.report_autofilter = オフ

;SYS

; 早期/遅延バインディングの理由により自動的にキャッシュされないすべてのスクリプトを記録するかどうか。

apc.shm_segments = 1

;SYS

; コンパイラ バッファに割り当てられる共有メモリ ブロックの数 (推奨値は 1)。

; APC が共有メモリを使い果たしており、apc.shm_size ディレクティブがシステムで許可されている最大値に設定されている場合は、この値を増やしてみてください。

apc.shm_size = 30

; SYS

; 各共有メモリ ブロックのサイズ (MB 単位、推奨値は 128 ~ 256)。

; 一部のシステム (ほとんどの BSD バリアントを含む) のデフォルトの共有メモリ ブロック サイズは非常に小さいです。

apc.slam_defense = 0

;SYS (このコマンドの使用には反対です。apc.write_lock コマンドを使用することをお勧めします)

;サーバーがビジー状態である場合、ファイルの提供を開始しているか、ファイルを変更しているかにかかわらず、

は複数のプロセスが同時にファイルをキャッシュしようとするため、競合状態を引き起こす可能性があります。

; このディレクティブは、キャッシュされていないファイルを処理するときにキャッシュ手順をスキップするプロセスの割合を設定するために使用されます。

; たとえば、これを 75 に設定すると、キャッシュされていないファイルが見つかったときに 75% の確率でキャッシュされないため、衝突の可能性が低くなります。

; この機能を無効にするには、0 に設定することをお勧めします。

apc.stat = On

;SYS

; スクリプト更新チェックを有効にするかどうか。

; このコマンドの値を変更する場合は十分に注意してください。

; デフォルト値 On は、APC がリクエストされるたびにスクリプトが更新されたかどうかをチェックし、更新された場合はコンパイルされたコンテンツを自動的に再コンパイルしてキャッシュすることを意味します。ただし、これを行うとパフォーマンスに悪影響が生じます。

; Off に設定すると、チェックは実行されないため、パフォーマンスが大幅に向上します。

; ただし、更新されたコンテンツを有効にするには、Web サーバーを再起動する必要があります。

; このディレクティブは include/require ファイルにも有効です。ただし、

; 相対パスを使用する場合、APC は include/require するたびにファイルの場所を確認する必要があることに注意してください。

; 絶対パスを使用するとチェックがスキップされる可能性があるため、include/require 操作には絶対パスを使用することをお勧めします。

apc.user_entries_hint = 100

;SYS

; num_files_hint ディレクティブと似ていますが、ユーザーごとに異なります。

; よくわからない場合は 0 に設定してください。

apc.write_lock = On

;SYS

; 書き込みロックを有効にするかどうか。

; 非常に負荷の高いサーバーでは、サービスの開始時でもファイルの変更時でも、複数のプロセスが同時にファイルをキャッシュしようとするため、競合状態が発生する可能性があります。

; このディレクティブを有効にすると、競合状態を回避できます。

apc.rfc1867 = Off

;SYS

; このコマンドをオンにすると、ファイル フィールドの直前に APC_UPLOAD_PROGRESS フィールドが含まれるアップロード ファイルごとに、

; APC は、upload_ のユーザー キャッシュ エントリ (つまり、APC_UPLOAD_PROGRESS フィールドの値) を自動的に作成します。

3. 関数

apc_cache_info - APC のデータ ストアからキャッシュされた情報 (およびメタデータ) を取得します。

apc_clear_cache - APC キャッシュをクリアします。

apc_define_constants - 一連の定数を定義します。後の取得と一括定義

apc_delete - キャッシュから格納された変数を削除します。

apc_fetch - キャッシュから格納された変数をフェッチします。

apc_load_constants - キャッシュから一連の定数をロードします。

apc_sma_info - APC を取得します。共有メモリ割り当て情報
apc_store - データ ストアに変数をキャッシュします

apc は比較的簡単に使用でき、以下に示す関数がいくつかあるだけです。

apc_cache_info () はキャッシュ情報を返します。

apc_clear_cache() は APC キャッシュの内容をクリアします。

デフォルト (パラメータなし) では、システム キャッシュのみがクリアされます。ユーザー キャッシュをクリアするには、「user」パラメータが必要です。

apc_define_constants ( string key, array constants [, bool case_sensitive] ) 配列定数を定数としてキャッシュに追加します。

apc_load_constants (文字列キー)。

定数キャッシュを削除します。

apc_store (文字列キー、混合変数 [, int ttl] )。

データをキャッシュに保存します。

apc_fetch (文字列キー)。

apc_store

apc_delete (string key) によって保存されたキャッシュ コンテンツを取得します。

apc_store によって保存されたコンテンツを削除します。

apc 管理:

pecl.php.net に移動して apc ソース パッケージをダウンロードすると、apc.php が存在します。Web サーバーがアクセスできる場所にコピーして参照します。アクセスするには。

管理インターフェイスの機能は次のとおりです。

1. データの更新

2. システム キャッシュ エントリの表示

4 . ユーザー キャッシュ エントリ

5. バージョン チェック

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。