WPF / Winform应用程序中的内存占用不断增加

时间:2015-04-22 15:15:49

标签: c# .net wpf winforms winforms-interop

这个问题似乎与我的程序部分隔离,我在WPF窗口中托管了一个Winform控件。

向用户显示X行数,并且可以在任何行上单击“编辑”以显示另一个窗口(<<这是包含Winform控件的窗口)。

每次进行新选择并加载新的编辑窗口时,内存使用量将增加1到4兆。我已经尝试在窗口关闭时对所有对象进行归零/处理,但它没有什么区别。

只有这个窗口会导致内存持续上升而且永远不会再下降。即使我关闭除主窗口之外的所有窗口,内存占用仍然保持原样。

2 个答案:

答案 0 :(得分:2)

最简单的解决方案是在打开窗口之前和之后创建内存的内存快照,并查看分配了哪些新对象。例如,你可以使用内存分析器dotMemory来完成它。

同样在dotMemory中,您可以自动查看泄露的事件处理程序。

答案 1 :(得分:0)

阿列克谢已经说过如何解决这个问题。分析内存可以显示程序的许多问题。

Microsoft提供了两个可用于此的工具。一个是CLR Profiler,另一个是Performance Analysis Tool,它还包括内存CLR内存信息。我会选择前两者。