【发布时间】:2012-03-19 20:10:53
【问题描述】:
我有一个 .NET 服务,其正常的私有工作集约为 80 MB。在最近的一次负载测试中,进程达到了 3.5 GB 的内存使用量,导致整机物理内存不足(使用了 4 GB 中的 3.9 个),并且在负载测试停止后很长时间没有释放内存。使用任务管理器,我获取了进程的转储文件并在 Visual Studio 2010 SP1 中打开它,我可以开始对其进行调试。
如何诊断内存问题?我可以使用 dotTrace Memory 3.x,它是否支持对转储文件进行内存分析?如果没有,Visual Studio 2010 Premium 的内存分析功能会有所帮助吗(我目前有 Professional)? WinDbg 可以帮忙吗?
更新:新的 Visual Studio 2013 Ultimate 现在可以使用转储文件本地诊断内存问题。详情请见this blog post。
【问题讨论】:
-
Visual Studio 2013 Ultimate Edition 仅...
-
@Samuel:真的吗?多么悲伤和失望……
-
这是引用的 msdn 文章:blogs.msdn.com/b/visualstudioalm/archive/2013/06/20/…。它指出该选项的先决条件是 Ultimate。确实令人失望,因为我认为它在 RC1 中可用并已被推入 Ultimate,这是一个相当昂贵的功能......
-
有了下面的答案,您可能还需要额外的步骤来加载 Windows SOS/CLR dll。我解决了它并在此处添加了步骤的快速摘要:stackoverflow.com/a/20692646/284598
标签: .net visual-studio-2010 memory-leaks crash-dumps memory-profiling