.NETキャッシングの使用に関して可能な限り多くの情報を取得することで遊んでいます。
オブジェクトを使用して、Cache
3つのパラメータを取得できます
Count
EffectivePercentagePhysicalMemoryLimit
EffectivePrivateBytesLimit
しかし、残りはどうですか?
「サーバーで使用可能なメモリ」、「使用済みキャッシュメモリ」などの情報はどこで入手できますか...
ASP Allienceにはキャッシュマネージャーと呼ばれる古いプロジェクトがありましたが、現在は利用できず、私が見つけたのはその画像だけで、正確に次のように表示されます。
私はドキュメントを見て、PhysicalMemoryLimitSystem.Runtime.Cache
などの新しい.NET 4エントリについて読んでいましたが、それをどのように使用するかについての実際の例を見つけることができません...CacheMemoryLimit
キャッシュ情報のラッパーを持っている人はいますか?または利用可能なこの新しい方法を使用する方法のアイデアはありますか?
私の現在のキャッシュ実装は次のとおりです。
public class InMemoryCache : ICacheService
{
private int minutes = 15;
public T Get<T>(string cacheID, Func<T> getItemCallback) where T : class
{
T item = HttpRuntime.Cache.Get(cacheID) as T;
if (item == null)
{
item = getItemCallback();
HttpRuntime.Cache.Insert(
cacheID,
item,
null,
DateTime.Now.AddMinutes(minutes),
System.Web.Caching.Cache.NoSlidingExpiration);
}
return item;
}
public void Clear()
{
IDictionaryEnumerator enumerator = HttpRuntime.Cache.GetEnumerator();
while (enumerator.MoveNext())
HttpRuntime.Cache.Remove(enumerator.Key.ToString());
}
public Dictionary<string, string> Stats()
{
var cache = HttpRuntime.Cache;
var r = new Dictionary<string, string>();
r.Add("Count", cache.Count.ToString());
r.Add("EffectivePercentagePhysicalMemoryLimit", cache.EffectivePercentagePhysicalMemoryLimit.ToString());
r.Add("EffectivePrivateBytesLimit", cache.EffectivePrivateBytesLimit.ToString());
return r;
}
}