如何确定 ASP.Net 缓存的总大小?
Posted
技术标签:
【中文标题】如何确定 ASP.Net 缓存的总大小?【英文标题】:How to determine total size of ASP.Net cache? 【发布时间】:2010-09-25 13:04:39 【问题描述】:我在一个 Web 项目中使用 ASP.net 缓存,我正在为它编写一个“状态”页面,它显示缓存中的项目,以及我能找到的关于缓存的尽可能多的统计信息。有什么方法可以获得缓存数据的总大小(以字节为单位)?每个项目的大小会更好。我想在网页上显示它,所以我认为我不能使用性能计数器。
【问题讨论】:
【参考方案1】:我正在查看我的性能监视器,在 ASP.NET Apps v2.0.50727 类别下,我有以下与缓存相关的计数器:
使用的缓存百分比机器内存限制
使用的缓存百分比进程内存限制
此类别下还有很多其他与缓存相关的指标。
这些应该能够为您提供百分比,然后如果您可以通过Cache.EffectivePrivateBytesLimit
或其他一些电话获得允许的总数,您应该能够弄清楚。我没有使用这些计数器的个人经验,因此您必须进行一些研究和测试才能验证。
这是一篇关于从性能计数器读取的快速入门文章: http://quickstart.developerfusion.co.uk/quickstart/howto/doc/PCRead.aspx
【讨论】:
PerformanceCounter pc = new PerformanceCounter("ASP.NET Applications", "Cache % Machine Memory Limit Used", true); pc.InstanceName = "总计"; CacheMachineMemoryLimitUsedLiteral.Text = string.Format("0:0.00%", pc.NextValue()); 注意,由于 Markdown 的原因,Mike 的代码应该在 "TOTAL" 的开头和结尾处有两个下划线 cmets 中的markdown 与消息中存在的相同,只需在要用作“代码”的代码之前和之后添加`...对于此示例:pc.InstanceName = "__Total__";
witch 可以从MSDN【参考方案2】:
没试过。但也许你可以使用Cache Manager plug-in for ASP.NET。或者以它为例。
【讨论】:
这个网站伤害了我的眼睛:P 此链接已失效,我在 ASP 联盟网站上找不到该文章 :(以上是关于如何确定 ASP.Net 缓存的总大小?的主要内容,如果未能解决你的问题,请参考以下文章