Вопросы по использованию профилирования памяти.net dottrace - Фильтр круговых ссылок
Я использую DotTrace в качестве профилировщика памяти. Интересно, как он может фильтровать круговые входящие ссылки?
Что касается сценариев, которые я хочу увидеть, кто, черт возьми, хранит ссылку на мой объект и поддерживает его, эти циклические ссылки, особенно обработчики событий, не представляют интереса, но среди них часто скрываются истинные плохие ссылки.
Кроме того, что означает "Показать удерживаемые в новой вкладке" и "Показать достижимые в новой вкладке" и помогают ли они идентифицировать циклические ссылки?
Большое спасибо за любой ответ.
1 ответ
Что вы подразумеваете под "круговыми ссылками"? Если я правильно помню, нет никакого способа добиться утечки памяти через циклические ссылки, поскольку GC идентифицирует и уничтожает весь подграф взаимосвязанных объектов.
Однако, если какой-либо из объектов в подграфе имеет прямую ссылку, весь граф выживает. Поэтому вам, вероятно, следует присмотреться ко всем объектам, которые вы подозреваете, и найти объект, на который неверно ссылаются.