使用VS 2017诊断工具

时间:2018-04-25 20:18:00

标签: c# wpf visual-studio memory-leaks visual-studio-2017

我有一个内存泄漏的WPF应用程序。现在,我知道绑定memoryleaks,DependencyObjects,InotifyPropertyChanged等。但是,在应用程序的某个地方,我忘了做正确的事情,从而将我的所有窗口保存在内存中。当那些窗户关闭时。

我有Visual Studio 2017 Enterprise,因此我可以创建内存快照并查看内存。但是:

一旦我深入了解托管内存的快照=>找到应该消失的窗口类=>看到引用计数与我打开和关闭该窗口的次数完全一样多=>看看root的路径 - 我迷失了。

有许多路径......如同很多。 TextBoxes,Borders,ContentPresenters等。但是,据我所知,所有结束都在[循环检测]中。我还没有找到一个进入主应用程序,绑定,事件处理程序或其他任何东西的路径。我的理解是,当路径以[循环检测]结束并且该链中没有任何地方是一个对象,该对象也有一条实际应该仍在内存中的路径,该路径不是内存泄漏的原因。

所以,这个树视图很有用,但是当你必须点击10000个路径打开时我觉得必须有一个更简单的方法。有没有人有一个关于如何使用这个令人难以置信的有用工具的指针,我实际上可以看到什么使WPF窗口保持在内存中?

由于

编辑 - 也许我只是在阅读错误的工具? enter image description here进程内存图表一直在稳步上升..所以,我认为堆积也会上升,但事实并非如此。

编辑2 这是一段时间后的记忆。 ThreadInfo似乎有点过分.... enter image description here

0 个答案:

没有答案