我们的一个ASP.net应用程序遇到问题,mscorwks.dll使用了大量内存。 任何人都有任何关于从何处开始寻找内存泄漏的提示?
mscorwks!EEVirtualAlloc + 119:1.26 GBytes的未完成分配。
答案 0 :(得分:0)
使用.NET配置文件,例如
答案 1 :(得分:0)
答案 2 :(得分:0)
调查导致泄漏的托管类型的步骤可以通过以下步骤进行总结:
.loadby sos mscorwks
将SOS调试器扩展加载到WinDbg中(当您的应用程序在v4.0上运行时,将mscorwks
替换为clr
)!dumpheap -stat
!dumpheap -mt <INSTANCE METHODTABLE>
转储其实例(可以从上一个命令的输出中检索methodTable)!gcroot <INSTANCE ADDRESS>
此时,您应该有足够的数据来查找泄漏源。
可以找到有关这些步骤的更详细的文章here。