Использование профилировщика памяти, который отслеживает несколько проектов

Я работаю над проектом Silverlight 4, и до меня произошла серьезная утечка памяти. Я попробовал два разных профилировщика, которые подключаются к VIsual Studio 2010, и заметил, что данные не меняются между снимками. Именно тогда я понял, что он не показывает ни большую часть моих данных, ни какие-либо пользовательские классы.

Я считаю, что происходит то, что он показывает только использование моей памяти для «стартап-проекта», но есть куча других вспомогательных проектов, которые на самом деле выполняют тяжелую работу, содержащую утечку. Есть ли профилировщик, который может показать использование памяти несколькими проектами?

До сих пор я использовал ANTS и что-то от memprofiler.com. Я попробовал WinDbg, но не смог заставить его работать, и все инструкции по его использованию кажутся довольно старыми.

Любая помощь приветствуется.

редактировать: найденное решение состояло в том, чтобы правильно настроить ANTS, чтобы он указывал на веб-сайт, на котором размещено приложение, которое, наконец, покажет все. Отлаженная локальная версия не будет отображать те же данные.

Редактировать 2: подключение к приложению silverlight в Интернете кажется настолько хорошим, насколько это возможно.


person StephenT    schedule 15.07.2011    source источник
comment
На любом профилировщике, с которым я работал, прежде чем профилировать что-то, вы в основном выбирали двоичные файлы, которые собираетесь профилировать. Мне кажется странным, что у ANTS нет такой возможности.   -  person Tigran    schedule 15.07.2011


Ответы (2)


Проблема с попыткой подключиться ко многим процессам заключается в том, что приложению придется взаимодействовать с несколькими профилировщиками COM (по одному на процесс), и эта сложность может быть не встроена, однако ничто не должно мешать вам запускать несколько хостов/профилировщиков одновременно. время.

ПРИМЕЧАНИЕ. Я использовал ClrProfiler4 для поиска утечек памяти в приложении Silverlight (обнаружено, что мы (повторно) обнаружили утечку памяти контекстного меню в наборе инструментов Silverlight)

Он работал довольно хорошо, не самый красивый из профилировщиков, но что вы ожидаете от бесплатного.

person Shaun Wilde    schedule 21.07.2011
comment
когда я попытался запустить профилировщик в веб-версии программы silverlight, программа вечно сидела на экране загрузки, не продвигаясь вперед. Но я надеялся, что вы сможете подробнее объяснить упомянутую вами утечку памяти в контекстном меню, чтобы убедиться, что это не проблема (новое для Silverlight). Из данных, которые я получаю от ANTS, кажется, что много утечек, и я не могу найти для них точки соприкосновения. На данный момент у меня есть твердые факты, что каждый раз, когда я перемещаюсь по приложению, приложение растет, и то, что я получаю самые новые экземпляры, — это слабые ссылки. - person StephenT; 25.07.2011
comment
Забей на это, кажется, я залатал основной источник утечки. Это скорее струйка, которая, кажется, происходит по шаблону, который я не могу идентифицировать (вместо того, чтобы каждое изменение в навигации приводило к росту, это больше похоже на каждое 10-е изменение) - person StephenT; 25.07.2011
comment
Утечка памяти, которая у нас была, была связана с обработчиком сообщений для событий мыши, постоянно += без ответа -= (классическая ошибка, но раздражающий сторонний код). - person Shaun Wilde; 26.07.2011

Мне удалось исправить проект с помощью ANTS, их страницы поддержки Поддержка RedGate помогла некоторым, но я просто не думаю, что у них есть лучшие рекомендации по профилированию Silverlight Приложение.

Из того, что я слышал, в настоящее время не так просто профилировать приложение Silverlight, и та информация, которую я получал от ANTS, была, я думаю, всем, что я мог ожидать, не используя дополнительные «практические» инструменты. На случай, если кому-то еще понадобится профилировать в Silverlight, когда я продолжу избавляться от утечек памяти, я буду работать с этими сайтами ниже

Выявление утечек памяти в Silverlight

Журнал MSDN

person StephenT    schedule 04.08.2011