如何确定 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 缓存的总大小?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net mvc - 缓存

如果asp.net mvc3中的大小超过4mb,则无法上传文件[重复]

ASP.NET_基础

如何确定要读取的 QIODevice 的总大小?

ASP.NET 应用程序中的浏览器缓存

ASP.NET Core与ASP.NET区别