2

PHP OpCode キャッシュをサポートしたい場合、どのようなことを避けるべきですか? 静的呼び出しは悪ですか? __autoload はどうですか?

4

2 に答える 2

6

過去 3 年半にわたって取り組んできたすべての PHP ベースの Web アプリケーションについて、使用しているすべてのサーバーで常にAPCをオペコード キャッシュとして使用してきました...

...そして、開発中に「特別な」ことをする必要はありませんでした。すべての場合において、APC を使用するかどうかは透過的であり、唯一の違いはパフォーマンスに関するものです。

たとえば、静的呼び出しや自動読み込みで問題が発生したことはありません。また、他のものでも問題はありませんでした(そして、いくつかの異なるフレームワークと OSS アプリケーションで作業しました)。

それでも、良い習慣が 1 つあります。運用サーバーで APC を使用する予定がある場合は、念のため開発マシンでも使用してください。ただし、apc.statそれらのオプションを有効にすると、オペコード キャッシング メカニズムによって複雑になることはありません。

于 2010-01-06T11:11:22.683 に答える
1

スクリプトのコンパイル済みバージョンをキャッシュするために、オペコード キャッシュが作成されます。内部の Zend Engine は、スクリプトを実行する前に常に PHP スクリプトをより高速なオペコードにコンパイルします。これらのオペコードはキャッシュに保存されます。したがって、スクリプトは、キャッシュがない場合とまったく同じように動作しますが、実行を開始するのが速くなります。

キャッシュ エンジンは通常、PHP ファイルのタイムスタンプ (変更時刻、または mtime) を調べます。APC は、リクエストごとに変更時刻を検索するように構成できます (デフォルト) が、変更時刻をチェックしないように構成することもできます。その場合、キャッシュを手動でクリアして変更を反映する必要があります。この設定を APC キャッシュに表示します。

http://php.net/manual/en/apc.configuration.php#ini.apc.stat

于 2010-01-06T11:27:50.057 に答える