Какие есть хорошие профилировщики .NET?

Другие охватывали профилирование dotnet производительности, но что касается профилирования памяти В dot-net настоящее время я оцениваю c-sharp как Scitech .NET Memory Profiler profiler 3.1, так и ANTS Memory Profiler profilers 5.1 (текущие версии по состоянию profiler на сентябрь 2009 г.). Я пробовал csharp JetBrains один год или два profiling-tools назад, и он был не так хорош, как .net-framework ANTS (для профилирования .cs-file памяти), поэтому на этот csharp раз я не стал беспокоиться. Читая c#.net веб-сайты, похоже, что у profiling-tools него нет тех же функций профилирования памяти, как profiler у двух других.

Как ANTS, так c#.net и профилировщик памяти Scitech c#.net имеют функции, которых нет c#-language у другого, поэтому какой .net вариант лучше всего будет .cs-file зависеть от ваших предпочтений. Вообще c# говоря, Scitech предоставляет .net более подробную информацию, в c#-language то время как ANTS действительно .net невероятно идентифицирует .cs-file протекающий объект. В целом, я profiling предпочитаю ANTS, потому .net что он очень быстро обнаруживает c-sharp возможные утечки.

Вот основные c#-language плюсы и минусы каждого из c#-language моих опытов:

Общие функции ANTS и Scitech .NET Memory Profiler

  • Функция анализа в реальном времени.
  • Отличные обучающие видео на их веб-сайтах.
  • Простота использования
  • Достаточно производительный (очевидно, медленнее, чем без профилировщика, но не настолько, чтобы вы разочаровались)
  • Показать экземпляры протекающих объектов.
  • В основном они оба неплохо справляются со своей задачей.

МУРАВЬИ

  • Фильтры одним щелчком для поиска распространенных утечек, в том числе: объекты, которые остаются активными только обработчиками событий, объекты, которые удаляются, но все еще остаются активными, и объекты, которые остаются активными только по ссылке из удаленного объекта . Вероятно, это убийственная особенность ANTS - из-за этого поиск утечек происходит невероятно быстро. По моему опыту, большинство утечек вызвано тем, что обработчики событий не отключаются, и ANTS просто направляет вас прямо к этим объектам. Замечательно.
  • График удержания объекта. Хотя та же информация доступна в Scitech, ее гораздо проще интерпретировать в ANTS.
  • Показывает размер вместе с дочерними элементами в дополнение к размеру самого объекта (но только когда экземпляр выбран, к сожалению, не в общем списке классов).
  • Лучшая интеграция с Visual Studio (щелкните правой кнопкой мыши график, чтобы перейти к файлу).

Scitech .NET Memory Profiler

  • Показывает трассировку стека, когда объект был выделен. Это действительно полезно для объектов, которые размещены во множестве разных мест. С помощью ANTS трудно точно определить, где был создан просочившийся объект.
  • Показывает количество одноразовых предметов, которые не были утилизированы. Хотя это и не свидетельствует об утечке, он определяет возможности решения этой проблемы и повышения производительности вашего приложения за счет более быстрой сборки мусора.
  • Более подробные параметры фильтрации (несколько столбцов можно фильтровать независимо).
  • Представляет информацию об общем количестве созданных объектов (включая собранный мусор). ANTS показывает только статистику «живых» объектов. Это упрощает анализ и настройку общей производительности приложения (например, определение того, где создается множество объектов без необходимости, которые не обязательно протекают).

Подводя итог, я .net считаю, что ANTS помогает csharp быстрее находить утечки, в visual-c# то время как Scitech предоставляет dot-net более подробную информацию profilers об общей производительности csharp памяти вашего приложения profiler и отдельных объектах, если c# вы знаете, на что обращать profilers внимание (например, трассировку profiling стека при создании). Если .net бы трассировка стека и отслеживание profiling неудаленных одноразовых объектов .cs-file были добавлены в ANTS, я dotnet бы не видел необходимости visual-c# использовать что-либо еще.

c#

.net

profiling

profiler

2022-03-20T16:52:44+00:00