5

PHP 5.5.x に付属していた OpCache を使用していますが、非常に満足していますが、メモリ設定を調整したいと考えており、理解が不十分です...

特定のユーザーが特定のページを要求すると、サーバーはこの要求に応答し、PHP インタープリターを呼び出します。インタープリターはオペコードをキャッシュに保存し、コンテンツを提供します。それだけです。次にリクエストが来ると、リクエストされたオペコードが同じであればキャッシュが作動しますが、私の質問は...

キャッシュはユーザーごとに機能していますか (キャッシュされたオペコードはこの特定のユーザーの要求にのみ適用されます)、またはそれらのキャッシュされたオペコードを使用するすべての要求に適用されますか?

私がやりたいことは、特定の量のメモリを使用するように OpCache を調整することですが、メモリ プールがユーザーごとに機能するのか、それともリソースの共有プールのように機能するのかはわかりません。

ヒントを教えてください。

4

1 に答える 1

12

オペコードがキャッシュに格納され、共有メモリから読み取られる方法については、すでに正しいです。ただし、これはユーザー ベースではなく、スクリプト レベルです。解析され、opcodeにコンパイルされた各 php ファイルは、共有メモリに保存され、そこから実行されます。解析コンパイルの手順は、そうでなければ時間がかかりますが、キャッシュされたスクリプトごとに短縮されます。

ここに画像の説明を入力

あなたの質問に答えるために、いいえ、キャッシュはユーザーごとではなく、スクリプトごとに機能します。キャッシュされたオペコードは、要求ごとにスクリプト エンジン (主に Zend) によって引き続き実行されます。

はい、共有メモリから読み取ります。

リファレンス D. Shafik: OpCode キャッシュについて知っておくべきことすべて

于 2013-12-02T13:22:37.973 に答える