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