我的记忆在哪里?大的私有字节数

and*_*mar 7 .net debugging wpf memory-leaks

我有一个WPF应用程序,其中包括显示大量和小的图像.我的问题是该应用程序使用了大量内存,我无法弄清楚它来自何处.

情节,当强调应用程序时,我在perfmon中得到这个图:

http://www.imagechicken.com/uploads/1244548604007097000.jpg

黑色大行是Process\Private字节,其他行是CLR mem计数器(粉红色是总提交字节)

图中的数字是:
专用字节~350 Mb
承诺字节~100 Mb

我一直在使用WinDbg和其他工具进行大量挖掘,并且他们都报告托管堆栈的行为(!eeheap报告总托管堆栈大约100 Mb)

我一直在寻找像LeakDiag,LDGrapher这样的应用程序但却一无所获.

所以,最后我的问题是,如何继续寻找记忆的去向?

即使只是启动应用程序使用100Mb的承诺字节,但190Mb的私有字节.

参考文献:

我已经在很多网站上阅读了很多相关内容:

Tess Ferrandez:http://blogs.msdn.com/tess/archive/2009/02/27/net-memory-leak-reader-email-are-you-really-leaking-net-memory.aspx

Rico Mariani:http://blogs.msdn.com/ricom/archive/2004/12/10/279612.aspx

MSDN mag:http://msdn.microsoft.com/en-us/magazine/cc163528.aspx

Mit*_*eat 1

从 Scitech下载MemProfiler。它有 14 天的试用版。

您报告的问题通常是由于视图/资源由于在堆中具有根而无法处置。一个常见的原因不是取消事件处理程序的连接。