如何确定ASP.Net缓存的总大小?

我在Web项目中使用ASP.net缓存,我正在为它编写一个“状态”页面,它显示缓存中的项目,以及我可以找到的有关缓存的许多统计信息。 有什么方法可以获得缓存数据的总大小(以字节为单位)? 每个项目的大小会更好。 我想在网页上显示这个,所以我认为我不能使用性能计数器。

我正在查看我的性能监视器,在ASP.NET Apps v2.0.50727类别下,我有以下缓存相关的计数器:

使用缓存%机器内存限制

使用缓存%进程内存限制

此类别下还有许多其他与缓存相关的指标。

这些应该能够获得百分比,然后如果你可以通过Cache.EffectivePrivateBytesLimit或其他一些调用获得总数,你应该能够弄明白。 我没有这些计数器的个人经验,所以你必须做一些研究和测试来validation。

以下是从性能计数器上阅读的快速入门文章: http : //quickstart.developerfusion.co.uk/quickstart/howto/doc/PCRead.aspx

没试过。 但也许你可以使用ASP.NET的Cache Manager插件 。 或者用它作为例子。