5
.net
のMemoryCache
クラスは、使用するメモリ量がある制限を超えるたびにアイテムを削除することになっています。MemoryCacheはどのくらいの量のメモリを使用しているかを知っていますか?
実際にアイテムのメモリ使用量はどのように決定されますか?
.net
のMemoryCache
クラスは、使用するメモリ量がある制限を超えるたびにアイテムを削除することになっています。MemoryCacheはどのくらいの量のメモリを使用しているかを知っていますか?
実際にアイテムのメモリ使用量はどのように決定されますか?
MemoryCache
は内部的にCacheMemoryMonitor
を持ち、定期的にその参照がどれくらい大きいかを尋ねます。 mscorlibのSizedReference
という内部型を使用しています。この型は、そのターゲットがどれくらいの量のメモリを使用しているかを記録しています。
また、GCからさまざまな統計情報を収集して、メモリの負荷によって強制終了プロセスを開始する必要があるかどうかを確認します。
これは、基本的に、これは、 'MemoryCache'にオブジェクトグラフ全体が格納されている(良い?)アイデアを持っていることを意味します。使用する内部Hashtableのキーに関連付けられているオブジェクト参照サイズを単純に足しただけではあまり単純ではないと仮定するのは安全でしょうか? –
だから.netとCLRの内部について知ることなく 'MemoryCache'を実装することは不可能ですか? – binki