Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При профилировании кода .NET в средстве использовании памяти в Visual Studio горячий путь к корневому может помочь определить объекты, сохраненные в куче, которые вызывают проблемы с использованием памяти. В контексте использования памяти горячий путь — это цепочка ссылок, определяемая профайлером, которая указывает на корневой объект, являющийся потенциальным источником проблем с памятью.
При вычислении инклюзивного размера объекта (общий объем памяти, удерживаемой в куче за счет присутствия объекта), часто полезно преобразовать строго связный граф кучи в дерево. В отличие от графа, узел в дереве имеет произвольно много дочерних элементов, но только один родительский элемент. Вместо того чтобы рассмотреть каждый возможный путь к корню для объекта, выбор наиболее вероятного пути к корню с помощью различных эвристик обычно достаточно, чтобы найти ссылочную цепочку, которая, если удалена, сделает объект пригодным для удаления сборщиком мусора. Некоторые из этих эвристик включают приоритизацию кратчайшего пути к корню, определенные корневые типы и пользовательские пути кода. По разным причинам эта стратегия не всегда находит наиболее интересную или длинную цепочку хранения, но часто предоставляет полезную отправную точку в исследовании использования памяти.
В дереве Путей к Корню инструмента для анализа использования памяти путь со значком пламени () называется горячим путем к корню.
Пример
Используйте опцию Показывать только активные пути, чтобы отфильтровать отображение в области Пути к корню.
В этом примере элемент управления WPF (AttachToProcess.Dialog
) оказывается утечкой из-за привязки, которая в конечном итоге связана с AutomationPeer
. В отфильтрованном представлении путь хранения очевиден; видим только прямой путь к корню.
При отключении параметра становится ясно, что существуют сотни привязок, и большинство путей расширения ведут к замкнутым тупикам. Без визуального индикатора трудно разобрать тысячи возможных путей удержания, чтобы найти возможную причину утечки.
См. также
Дополнительные сведения об инструменте использования памяти Visual Studio см. в статье