Ответов (19)19
Вы можете попробовать следующее:
- nprof (бесплатно, но старовато)
- ProfileSharp (открытый исходный код)
- .Net Memory Profiler (действительно хорош для утечек памяти, есть пробная версия)
Изменить: Nprof был заменен на SlimTune и работает с приложениями .Net 4.0.
Полтора года назад я использовал профилировщик Ants в большом проекте на C#. Он действительно работал очень хорошо с такой ценой и даже превосходил некоторых более дорогих конкурентов.
Он рассчитывает стоимость практически с построчным разрешением.
Вчера я нашел .NET Memory Profiler и должен сказать, что он меня очень впечатлил.
Я собираюсь заказать лицензию сегодня.
Интересно, что никто не упоминает о том, что он есть в старших версиях Visual Studio - я всегда считал, что этого достаточно для профилирования выполнения. Для профилирования памяти я использую Memory Profiler, о котором уже упоминалось, но это не то, что я обычно называю «профилировщиком».
Какого рода профилирование вы пытались сделать?
Мы используем профайлер Ants там, где я работаю. Он дает очень подробную информацию в простой форме.
Удивительный NDepend Патрика Смаччиа отлично подходит для статического анализа.
Я бы настоятельно рекомендовал NDepend для статического анализа, но имейте в виду, что вам, вероятно, потребуется выделить день или два, чтобы на самом деле проанализировать грузовик с информацией, которую он предоставляет, а также выяснить, что на самом деле означает вся статистика с точки зрения ваш код.
Я буду вторым специалистом по профилированию ANTS от красных ворот . Я использовал его, чтобы отследить некоторые действительно тревожные проблемы с производительностью, и он был чрезвычайно простым в использовании (низкая кривая обучения) и предоставлял хорошие, подробные данные таким образом, чтобы их было легко понять. Ценник того стоит, но не бесплатно ...
Мы используем .NET Memory Profiler . Это некрасиво, но очень полезно для поиска висячих ссылок.
Изначально я попробовал профайлер ANTS от Red Gate, который очень привлекателен, но с точки зрения утечки памяти он отстой по следующим причинам:
1) Это до смешного медленно. На то, чтобы привести приложение в состояние для начала записи, потребовалось полчаса (без красных ворот это занимает 20 секунд).
2) Red Gate необходимо запускать собственный инструмент на собственном инструменте. К тому времени, как я сделал два снимка, он использовал 900 МБ памяти! Затем он разбился :(
Однако временная составляющая Red Gate ANTS была впечатляющей. Просто не беспокойтесь о профилировщике памяти, если только вы не имеете дело с тривиальным (небольшим) приложением.
EQATEC профайлер очень хорошо , и является полностью бесплатным. Его легко настроить и использовать, и, похоже, он не добавляет слишком много накладных расходов приложению. Я только начал его использовать сегодня и уже нашел пару узких мест, которые иначе не заметил бы.
Я поддерживаю исчерпывающий список профилировщиков для .NET на SharpToolbox.com.
Там вы найдете предлагаемые здесь инструменты и многое другое, каждый с кратким описанием того, что он предлагает.
Текущая версия SharpDevelop (3.1.1) имеет хороший интегрированный профилировщик. Это довольно быстро и очень хорошо интегрируется в среду разработки SharpDevelop и ее средство выполнения NUnit. Результаты отображаются в гибком стиле «дерево / список» (используйте LINQ для создания собственного выбора). Двойной щелчок по отображаемому методу позволяет перейти непосредственно к исходному коду.