我有一个正常的私人工作集约80 MB的.NET服务。在最近的负载测试期间,该进程达到了3.5 GB的内存使用量,导致整个机器在物理内存上很低(使用4 GB的3.9 GB),并且在负载测试停止后很久没有释放内存。使用任务管理器,我获取了该进程的转储文件并在Visual Studio 2010 SP1中打开了它,并且我可以开始对其进行调试。如何使用转储文件来诊断内存泄漏?
如何诊断内存问题?我拥有dotTrace Memory 3.x,它是否支持转储文件上的内存分析?如果没有,Visual Studio 2010 Premium的内存分析功能是否会有帮助(我目前有专业版)? WinDbg可以提供帮助吗?
UPDATE:新的Visual Studio 2013旗舰版现在可以本地使用诊断转储文件存储的问题。有关更多详细信息,请参阅this blog post。
只有Visual Studio 2013 Ultimate Edition ... – Samuel 2013-10-25 12:05:20
@Samuel:真的吗?多么悲伤和失望...... – 2013-10-25 22:54:02
这是引用的msdn文章:http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/20/using-visual-studio-2013-to-diagnose-net -memory-issues-in-production.aspx。它表示该选项的先决条件是Ultimate。因为我认为它在RC1中可用并且已被推入Ultimate,这是一个相当昂贵的功能,所以令人失望...... – Samuel 2013-10-27 11:06:18