我正在尝试尽可能多地检索有关 .NET 缓存使用的信息。
使用该Cache
对象,我们可以检索 3 个参数
Count
EffectivePercentagePhysicalMemoryLimit
EffectivePrivateBytesLimit
但是其余的呢?
我在哪里可以获得诸如“服务器中的可用内存”、“使用的缓存内存”等信息……
ASP Allience中有一个名为Cache Manager的旧项目,但它不再可用,我只能找到它的图像,它确实显示如下:
我正在查看文档并阅读新的 .NET 4 条目,System.Runtime.Cache
例如CacheMemoryLimit
和PhysicalMemoryLimit,但我找不到关于如何使用它的真实示例......
有没有人有缓存信息的包装器?或者知道如何使用这种可用的新方法?
我当前的缓存实现是:
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;
}
}