为了将我的 C# 应用程序中的内存占用减少到限制以下(大约 1-2GB),我希望实时(在运行时)查看所有变量的列表,以及它们消耗了多少内存(甚至可能是内容)。
在我看来,这个看似简单的请求似乎已经逃脱了内存分析器的注意。例如,.NET Memory Profiler 显示每个给定类型(例如 Int32[] 或 String)的内存,但似乎不允许更精细的粒度来显示每个命名变量的内存。
虽然我没有尝试过 dotTrace 或 ANTS Memory Profiler,但扫描常见问题解答、视频和屏幕截图也是空白。
除了我自己的变量之外,所需的分析器可能包括任何 .NET 应用程序典型的“开销”内存使用情况,尽管对我来说,这并不重要。
有没有可以做到这一点的程序(最好是免费的或低于 100 美元)?
- - - - - - - 编辑
对于相互引用的变量(如 Jon Skeet 所示),或通过引用传递给方法的变量,分析器可以将它们分组以显示它们实际上是同一个对象(因此“共享”相同的内存),或者只显示原始变量名并省略引用。