2

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

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

由于我们可能在同一台机器上运行产品的多个实例(每个实例都在它自己的应用程序域中),因此立即查看谁在消费什么是很重要的……

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

提前致谢!

4

1 回答 1

2

检查内存的最佳方法是使用 WinDbg + SOS/Psscor。特别是, Tess 的这篇文章将为您提供一个脚本来自动化 MemoryCache 检查。

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

另一种方法是使用调试工具 2.0,可在此处获得。您只需要创建工作进程的内存转储(任务管理器/右键单击/创建转储文件)并选择内存分析。该报告包含进程中的 Web 缓存大小部分。

如果你想做 Live Memory 检查,你可以使用.net 团队的ClrMD此处提供了介绍。

于 2013-12-17T12:28:12.237 回答