В настоящее время я оцениваю как Scitech .NET Memory Profiler 3.1, так и ANTS Memory Profiler 5.1. Я пробовал JetBrains один год или два назад, и он был не так хорош, как ANTS, поэтому на этот раз я не стал беспокоиться. При чтении веб-сайтов кажется, что он не так хорош для профилирования памяти, как два других.
Как ANTS, так и профилировщик памяти Scitech имеют функции, которых нет у другого, поэтому какой вариант лучше всего будет зависеть от ваших предпочтений. Вообще говоря, Scitech предоставляет более подробную информацию, в то время как ANTS действительно невероятно идентифицирует протекающий объект. В целом, я предпочитаю ANTS, потому что он очень быстро обнаруживает возможные утечки.
Вот основные плюсы и минусы каждого из моих опытов:
Общие функции ANTS и Scitech .NET Memory Profiler
- Функция анализа в реальном времени
- Отличные обучающие видео на их веб-сайтах
- Легко использовать
- Достаточно производительный (очевидно, медленнее, чем без прикрепленного профилировщика, но не настолько, чтобы вы разочаровались)
- Показать экземпляры протекающих объектов
- В принципе, они оба неплохо справляются со своей работой.
МУРАВЬИ
- Фильтры одним щелчком для поиска распространенных утечек, в том числе: объекты, которые остаются активными только обработчиками событий, объекты, которые удаляются, но все еще остаются активными, и объекты, которые поддерживаются только по ссылке из удаленного объекта. Вероятно, это убийственная особенность ANTS - из-за этого поиск утечек происходит невероятно быстро. По моему опыту, большинство утечек вызвано тем, что обработчики событий не отключаются, и ANTS просто направляет вас прямо к этим объектам. Потрясающий.
- График удержания объекта. Хотя та же информация доступна в Scitech, ее гораздо проще интерпретировать в ANTS.
- Показывает размер вместе с дочерними элементами в дополнение к размеру самого объекта (но только когда экземпляр выбран, к сожалению, не в общем списке классов).
- Лучшая интеграция с Visual Studio (щелкните правой кнопкой мыши график, чтобы перейти к файлу)
Scitech .NET Memory Profiler
- Показывает трассировку стека, когда объект был выделен. Это действительно полезно для объектов, которые размещены в большом количестве разных мест. С помощью ANTS трудно точно определить, где был создан просочившийся объект.
- Показывает количество одноразовых предметов, которые не были утилизированы. Хотя это и не свидетельствует об утечке, он определяет возможности решения этой проблемы и повышения производительности вашего приложения в результате более быстрой сборки мусора.
- Более подробные параметры фильтрации (несколько столбцов можно фильтровать независимо).
- Предоставляет информацию об общем количестве созданных объектов (включая собранный мусор). ANTS показывает только статистику «живых» объектов. Это упрощает анализ и настройку общей производительности приложения (например, определение того, где много объектов создается без необходимости, которые не обязательно протекают).
Подводя итог, я думаю, что ANTS помогает быстрее находить утечки, в то время как Scitech предоставляет немного больше подробностей об общей производительности памяти вашего приложения и отдельных объектах, если вы знаете, на что смотреть (например, трассировку стека при создании). Если бы трассировка стека и отслеживание неудаленных одноразовых объектов были добавлены в ANTS, я бы не видел необходимости использовать что-либо еще.
person
Ben Robbins
schedule
25.09.2009