У меня есть приложение WPF с утечкой памяти.Теперь я знаю о привязках утечек памяти, DependencyObjects, InotifyPropertyChanged и т. Д. Однако где-то в приложении я забыл сделать что-то правильно, сохранив все свои окна в памяти.Также, когда эти окна закрылись.
У меня есть Visual Studio 2017 Enterprise, так что я могу создать снимок памяти и посмотреть в нее.Однако:
Как только я копаю в Снимке управляемой памяти => найду класс окна, который должен быть пропущен => увидим, что счетчик ссылок ровно столько раз, сколько я открыл и закрыл это окно => взглядв путях к корню - я потерян.
Есть много путей ... как в много.TextBoxes, Borders, ContentPresenters и т. Д. Однако, насколько я могу судить, все заканчивается [Обнаружен цикл].Я (пока) не нашел ни одного пути, который ведет к основному приложению, привязке, обработчику событий или чему-либо еще.Насколько я понимаю, когда путь заканчивается [Обнаружен цикл], и нигде в этой цепочке нет объекта, который также имеет путь к чему-то, что на самом деле должно оставаться в памяти, этот путь не является причиной утечки памяти.
ТАК, это древовидное представление полезно, но не тогда, когда вам нужно щелкнуть 10000 открытых путей, и я чувствую, что должен быть более легкий путь.У кого-нибудь есть указатель на то, как использовать эти невероятные полезные инструменты таким образом, чтобы я мог на самом деле увидеть, что держит окно WPF в памяти ??
Спасибо
РЕДАКТИРОВАТЬ - Может, я просто неправильно читаю инструменты? Диаграмма «Память процесса» неуклонно растет. Итак, я ожидаю, что размер кучи также увеличится, но это не так.
РЕДАКТИРОВАТЬ 2 Это память через некоторое время.ThreadInfo кажется немного чрезмерным ....