我有一个很大的.NET应用程序,它目前的私人工作集大小为865MB。
所有这些非托管代码都使用这么多内存(我想.net运行时正在使用这些内存),这正常吗?
注意 :我使用了WinDbg和SOS扩展。问题不在于托管堆中的内存消耗,而在于“非托管”堆。
http://img687.imageshack.us/img687/1529/vmmap.png
更多信息: 总规模:1487MB 承诺:1359MB 总容量:967MB 空闲(大小):609MB
提前谢谢。
对!非托管对象如果不能正确释放,甚至会导致更多内存泄漏。我曾经发现obcconnection对象正在消耗内存(它试图在循环中打开/关闭连接)。以至于应用程序最终会失去内存而崩溃。
使用CLRProfiler( http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a362781c-3870-43be-8926-862b40aa0cd0&DisplayLang=en )查看堆中的对象。