0

キャッシュの複数の名前付きインスタンスを使用して、.net 4 でメモリキャッシュを使用しています。現在メモリ内にあるすべてのキャッシュ インスタンスを一覧表示する方法はあるのでしょうか?

4

1 に答える 1

0

それらへの参照がなければ、現在メモリ内にあるキャッシュインスタンスを取得する方法はありません。

したがって、解決策は、自分でリストを作成し、その方法で追跡することです。

List<System.Runtime.Caching.MemoryCache> cacheInstances = new List<System.Runtime.Caching.MemoryCache>();

次に、新しいMemoryCacheオブジェクトが作成されたときにそのリストに追加します(オブジェクトが破棄されたときに削除します)。

MemoryCacheは魔法のようなものではありません。これは、次を使用した場合の単なる改善と考えることができます。

Dictionary<String, Object> myCache

またはhashtable代わりに。

MemoryCacheの利点は、オブジェクトの有効期限(TTL)を取得できることです。これにより、キャッシュがいくつかのストレージ制限(アクセス優先度キュー)に近づいたときに、使用頻度の低いアイテムをより詳細に削除できます。

したがって、現在メモリ内にあるMemoryCacheインスタンスを知りたい場合は、それらを参照する必要があります。別のプロセスのメモリキャッシュにアクセスできないため、作成したMemoryCacheのみが存在することになります。

于 2012-05-10T09:19:25.560 に答える