这个问题似乎与我的程序部分隔离,我在WPF窗口中托管了一个Winform控件。
向用户显示X行数,并且可以在任何行上单击“编辑”以显示另一个窗口(<<这是包含Winform控件的窗口)。
每次进行新选择并加载新的编辑窗口时,内存使用量将增加1到4兆。我已经尝试在窗口关闭时对所有对象进行归零/处理,但它没有什么区别。
只有这个窗口会导致内存持续上升而且永远不会再下降。即使我关闭除主窗口之外的所有窗口,内存占用仍然保持原样。
答案 0 :(得分:2)
最简单的解决方案是在打开窗口之前和之后创建内存的内存快照,并查看分配了哪些新对象。例如,你可以使用内存分析器dotMemory来完成它。
同样在dotMemory中,您可以自动查看泄露的事件处理程序。
答案 1 :(得分:0)
阿列克谢已经说过如何解决这个问题。分析内存可以显示程序的许多问题。
Microsoft提供了两个可用于此的工具。一个是CLR Profiler,另一个是Performance Analysis Tool,它还包括内存CLR内存信息。我会选择前两者。