大規模なシステム開発において、キャッシュは間違いなく重要です。PHP の世界では、Java ほど多くのキャッシュ ソリューションを選択することはできませんが、それでもいくつかの成熟したソリューションがあり、「高度な PHP プログラミング」から次のことを学びました。
1. 言語レベルの最適化: PHP には多くのエンジン レベルの API があり、これらの API を通じてエンジンの実行動作を変更して、動作を最適化することができます。その中で、最も価値のあることは、コンパイル結果をキャッシュすることです。ご存知のとおり、PHP は実行されるたびに、ソース コード -> コンパイル -> 中間コード -> エンジンの実行というプロセスを経る必要があり、一部の大規模なアプリケーションでは、無駄なコンパイルにかなりの時間が費やされます。ページにアクセスする PHP のみ) ファイルはコンパイル プロセスを実行する必要があります。スクリプトで require() と include() が使用される場合、含まれる一部のファイルをコンパイルする必要があります。コンパイル結果をキャッシュすることにより、システムのパフォーマンスを大幅に向上させることができます (システムの複雑さと規模に比例します)。
コンパイル キャッシュを実装できる、PHP の世界で主流の 3 つのツールは次のとおりです。
Zend Accelerator - Zend Industries が製造する商用のクローズド ソースの有償コンパイラ キャッシュ
ionCube Accelerator — Nick Lindridge によって作成され、彼の会社 ionCube によって配布された商用のクローズド ソースですが無料のコンパイラ キャッシュ
APC - Daniel Cowgill と George Schlossnagle によって作成された無料のオープンソース コンパイラ キャッシュ
APC のインストール方法。APC は PECL に含まれています。具体的なインストールは次のとおりです。 190-823 190-802:
コマンド
#pear install apc を
実行した後、 php.ini
ファイルにextension = /path/to/apc.so
を追加すると、次回 php を実行すると APC が自動的に起動され、コンパイル結果が共有ファイルにキャッシュされます。次回実行時は編集結果をメモリから直接取得し、再コンパイルせずに実行します。
質問: APC は、前回のコンパイル以降に変更された PHP を自動的に再コンパイルできますか?
2. PHP コードの最適化: コンパイル後にいくつかのツールを使用して高品質の中間コードを生成します。 詳細は次のとおりです。
Zend オプティマイザーはクローズドソースですが、無料で利用できます。
ionCube アクセラレータには、統合されたオプティマイザが含まれています。
PEAR の概念実証オプティマイザー
オプティマイザーの主な機能:
1. 決して実行されないデッド コードなどの無駄なコードを削除します。
2. 定数の計算。たとえば、$秒_in_day = 24*60*60 を直接 $秒_in_day = 86400 に変更します。
3. 次のステートメントなどの他のコード最適化関数は
、
++$count; に最適化されます。実行が速くなります。 もちろん、ステートメントが $i = $count++ の場合、最適化は行われません。