.NET内存转储 - 如何报告非托管内存?

时间:2015-06-02 07:55:56

标签: .net azure-web-sites memory-dump

我们在Windows Azure中托管了一个ASP.NET MVC网站。

RAM达到~3GB,因此我使用Azure诊断即服务(DaaS)工具进行了内存转储。

使用Visual Studio调试托管内存时,我发现我的托管代码只占用了这个3GB的500MB,留下了2.5 GB的内存。

以下是DaaS内存分析报告的屏幕截图:

Memory Dump

转储文件证明文件大小: enter image description here

我怎么能看到w3wp中的代码嚼掉了我的RAM,因为它不是我的托管代码?

修改

调试诊断工具中有关虚拟内存的信息:

enter image description here

1 个答案:

答案 0 :(得分:0)

我可以看到您已将内存转储下载到您的计算机,您可以下载最新版本的调试诊断工具并运行托管内存分析和本地内存分析"在转储文件上。这将提供有关本机内存分配位置的一些信息,尤其是本机堆或虚拟分配。如果您共享该报告的链接或从该报告共享信息,我们可能能够确定使用本机内存的位置。我不确定DAAS中生成的默认报告是否包含该信息。

该报告确实包含有关检测到的某些问题(如动态程序集等)的信息,因此您是否在报告顶部看到任何将已知问题称为错误,警告或信息的内容?