如何确定MemoryCache类消耗了多少内存?

时间:2013-10-31 14:17:52

标签: c# caching memorycache

我们的产品基于内容对象数据集,该数据集保存在MemoryCache对象中。

我想知道存储在缓存中的数据消耗了多少内存。

因为我们可能在同一台机器上运行多个产品实例 (每个都在它自己的应用程序域中),重要的是立即看到谁消耗了什么......

该类具有以下属性:CacheMemoryLimit和PhysicalMemoryLimit,但是没有可以让我知道消耗了多少内存的属性?

提前致谢!

1 个答案:

答案 0 :(得分:2)

检查内存的最佳方法是使用WinDbg + SOS / Psscor。特别是,来自Tess的this article将为您提供一个自动执行MemoryCache检查的脚本。

但是,如果您不熟悉这些工具和.net内部结构,通常需要花费几个小时来设置环境并了解其工作原理。

另一种方法是使用可用的here调试工具2.0。您只需创建工作进程的内存转储(任务管理器/右Clic /创建转储文件)和选择内存分析。该报告包含过程中的Web缓存大小部分。

如果您想进行实时内存检查,可以使用.net团队中的ClrMD。有一个介绍here