Есть какие-нибудь достойные профилировщики C#?

Мне нужен профилировщик C#.

Хотя я не прочь заплатить за него, что-то бесплатное или хотя бы с пробной версией было бы идеальным, поскольку для создания заказа на покупку требуется время.

Есть рекомендации?

Ответов (19)

Решение

Вы можете попробовать следующее:

  • nprof (бесплатно, но старовато)
  • ProfileSharp (открытый исходный код)
  • .Net Memory Profiler (действительно хорош для утечек памяти, есть пробная версия)

Изменить: Nprof был заменен на SlimTune и работает с приложениями .Net 4.0.

dotTrace от JetBrains широко используется.

Удивительный NDepend Патрика Смаччиа отлично подходит для статического анализа.

Полтора года назад я использовал профилировщик Ants в большом проекте на C#. Он действительно работал очень хорошо с такой ценой и даже превосходил некоторых более дорогих конкурентов.

Он рассчитывает стоимость практически с построчным разрешением.

Мне повезло с профилировщиком памяти .NET

AQTime (как perf, так и память) или ANTS (профилировщик производительности v4 или бета-профилировщик памяти v5) здесь.

Какая у тебя цель?

Ваша цель - найти определенные операторы и получить приблизительное представление о том, какой вклад они вносят в общее время выполнения, чтобы вы могли найти способы сделать их по-другому?

В этом я клянусь этим методом.

Вчера я нашел .NET Memory Profiler и должен сказать, что он меня очень впечатлил.
Я собираюсь заказать лицензию сегодня.

Интересно, что никто не упоминает о том, что он есть в старших версиях Visual Studio - я всегда считал, что этого достаточно для профилирования выполнения. Для профилирования памяти я использую Memory Profiler, о котором уже упоминалось, но это не то, что я обычно называю «профилировщиком».

Какого рода профилирование вы пытались сделать?

Мы используем профайлер Ants там, где я работаю. Он дает очень подробную информацию в простой форме.

Я использовал AQtime, и он меня ни разу не подводил. Я уверен, что есть пробная версия.

Удивительный NDepend Патрика Смаччиа отлично подходит для статического анализа.

Я бы настоятельно рекомендовал NDepend для статического анализа, но имейте в виду, что вам, вероятно, потребуется выделить день или два, чтобы на самом деле проанализировать грузовик с информацией, которую он предоставляет, а также выяснить, что на самом деле означает вся статистика с точки зрения ваш код.

В настоящее время не пользуюсь ими, мой приятель восторженно отзывается о профайлере Ants. Я знаю, что это платный продукт, не уверен, насколько он дорог. Если у вас есть MVP, вы можете воспользоваться этим, чтобы получить бесплатную лицензию.

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

Мы используем .NET Memory Profiler . Это некрасиво, но очень полезно для поиска висячих ссылок.

Изначально я попробовал профайлер ANTS от Red Gate, который очень привлекателен, но с точки зрения утечки памяти он отстой по следующим причинам:

1) Это до смешного медленно. На то, чтобы привести приложение в состояние для начала записи, потребовалось полчаса (без красных ворот это занимает 20 секунд).

2) Red Gate необходимо запускать собственный инструмент на собственном инструменте. К тому времени, как я сделал два снимка, он использовал 900 МБ памяти! Затем он разбился :(

Однако временная составляющая Red Gate ANTS была впечатляющей. Просто не беспокойтесь о профилировщике памяти, если только вы не имеете дело с тривиальным (небольшим) приложением.

Профилировщик, включенный в некоторые версии Visual Studio, не очень хорошо справляется с профилированием использования памяти, но очень хорошо справляется со скоростью выполнения профилирования.

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

Профайлер EQATEC сделал здесь свою работу.

Я поддерживаю исчерпывающий список профилировщиков для .NET на SharpToolbox.com.

Там вы найдете предлагаемые здесь инструменты и многое другое, каждый с кратким описанием того, что он предлагает.

Текущая версия SharpDevelop (3.1.1) имеет хороший интегрированный профилировщик. Это довольно быстро и очень хорошо интегрируется в среду разработки SharpDevelop и ее средство выполнения NUnit. Результаты отображаются в гибком стиле «дерево / список» (используйте LINQ для создания собственного выбора). Двойной щелчок по отображаемому методу позволяет перейти непосредственно к исходному коду.