27

APC キャッシュを有効にして PHP を使用しています。

apc.cache_by_default => On
apc.enabled => On
apc.ttl => 7200

オペコードキャッシュを100%使用しているかどうかを知るにはどうすればよいですか。

たとえば、次の PHP ファイルがあるとします。

<?php
echo "Hi there";
?>

このファイルを実行した後、次のように変更します。echo "Bye there";

7200 秒の TTL がまだ終わっていないので、「こんにちは」とエコーするべきではありませんか? 私は正しいですか?もしそうなら、なぜ「さようなら」と反響するのですか?また、私が間違っている場合、ファイルを変更した後でも、強制的にオペコード キャッシュを使用させるにはどうすればよいですか?

4

3 に答える 3

20

本番環境ではやりたくないと思いますが、いつでも使用できますapc_cache_info()

function is_file_cached($file) {
    $info = apc_cache_info();
    foreach ($info['cache_list'] as $cache) {
        if ($cache['filename'] == $file) return true;
    }
    return false;
}

これは、指定されたファイルをチェックするためにキャッシュされているすべてのファイルを反復処理するため、効率的ではないことに注意してください。

また、特定の質問に関する限り、APC は、ファイルが変更されると、ファイルのキャッシュを自動的に無効にします。そのため、ファイルを編集すると、APC はこれを黙って検出し、新しいファイルを提供します。を設定することで、これを無効にすることができますapc.stat = 0

于 2011-02-16T14:56:58.260 に答える
9

通常、APC は、要求されたファイルがキャッシュされてから変更されているかどうかを確認します。これはapc.statで制御できます。

于 2011-02-16T14:47:35.677 に答える