Какие хорошие .NET Профайлеры?

голоса
374

Что профайлеры вы использовали при работе с программами, .net, и которые вы особенно рекомендуете?

Задан 06/08/2008 в 21:14
источник пользователем
На других языках...                            


30 ответов

голоса
285

Я использовал JetBrains dotTrace и Редгейт ANTS широко. Они довольно похожи по возможностям и цене. Они оба предлагают полезное профилирование производительности и довольно основное профилирование памяти.

dotTrace интегрируется с Resharper, что очень удобно, так как вы можете профилировать производительность модульного тестирования одним нажатием из IDE. Однако, dotTrace часто кажется, дает ложные результаты (например, говоря о том, что метод потребовалось несколько лет, чтобы запустить)

Я предпочитаю способ, которым МУРАВЬИ представляют результаты профилирования. Он показывает вам исходный код и слева от каждой строки сообщает, сколько времени потребовалось, чтобы бежать. dotTrace просто имеет вид дерева.

EQATEC профайлер является довольно основным и требует компиляцию специальных Instrumented версий сборок , которые затем могут быть запущены в EQATEC профилировщике. Это, однако, бесплатно.

В целом я предпочитаю ANTS для профилирования производительности, хотя, если вы используете Resharper то интеграция dotTrace особенность убийцы и означает, что он бьет Муравей в практичности.

Бесплатно Microsoft CLR Profiler ( .Net Framework 2.0 / .Net Framework 4.0 ) все , что нужно для профилирования .NET памяти.

2011 Обновление:

Профайлер памяти Scitech имеет довольно основной пользовательский интерфейс , но много полезной информации, включая некоторую информацию о неуправляемой памяти, dotTrace и МУРАВЬЕВ недостаток - вы могли бы найти это полезно , если вы делаете COM Interop, но я до сих пор найти профайлер , что делает COM проблемы с памятью легко диагностировать - вы обычно должны выйти windbg.exe.

ANTS профайлер пришел на скачкообразно в течение последних нескольких лет, и его память профайлер имеет некоторые действительно полезные функции, которые в настоящее время толкали его вперед dotTrace как пакет в моей оценке. Мне повезло иметь лицензии для обоих, но если вы собираетесь купить один .Net профайлер для производительности и памяти, сделать его муравьями.

Ответил 19/09/2008 d 09:29
источник пользователем

голоса
88

Другие покрыли профилирование производительности, но с уважением к профилированию памяти я в настоящее время оценивает как Scitech .NET Profiler памяти 3.1 и ANTS Memory Profiler 5.1 (текущие версии по состоянию на сентябрь 2009 года). Я попытался JetBrains один год или два назад , и это было не так хорошо , как муравьи (для профилирования памяти) , поэтому я не беспокоил в этот раз. От чтения веб - сайтов, похоже , это не то же самое профилирование памяти функции , как два других.

Оба Муравьи и профайлер Scitech памяти имеют особенности, что другие не делает, так что лучше всего будет зависеть от ваших предпочтений. Вообще говоря, Scitech один содержит более подробную информацию, а Муравей один действительно невероятно в идентификации объекта, протекающий. В целом, я предпочитаю ANTS один, потому что это так быстро на выявление возможных утечек.

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

Общие характеристики МУРАВЬЕВ и Profiler памяти Scitech .NET

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

МУРАВЬЕВ

  • Один клик фильтры , чтобы найти общие утечки в том числе: объекты хранятся в живых только обработчики событий, объектов, которые расположены , но до сих пор живут и объекты, которые только держат живым ссылкой из захороненных объекта. Это, вероятно , убийца особенность МУРАВЬЕВ - обнаружения утечек невероятно быстро из - за этого. По моему опыту, большинство утечек вызваны обработчики событий не отцепили и МУРАВЬЕВ просто приведет вас прямо к этим объектам. Потрясающие.
  • Объект удержания графа. В то время как та же информация доступна в Scitech, это гораздо легче интерпретировать в МУРАВЬЯХ.
  • Показывает размер с детьми в дополнение к размеру самой (но только тогда, когда экземпляр выбран, к сожалению, нет в списке общего класса) объекта.
  • Улучшенная интеграция с Visual Studio (щелкните правой кнопкой мыши на графике, чтобы перейти к файлу)

Profiler памяти Scitech .NET

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

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

Ответил 25/09/2009 d 04:16
источник пользователем

голоса
45

Недавно я обнаружил EQATEC Profiler http://www.eqatec.com/tools/profiler . Он работает с большинством версий .NET и на куче платформ. Он прост в использовании и его часть бесплатно, даже для коммерческого использования.

Ответил 29/08/2008 d 10:46
источник пользователем

голоса
31

[ Полное раскрытие ]

Пока еще не столь полнофункциональные как некоторые из других профайлеров .NET памяти , перечисленных здесь, есть новый вход на рынке под названием JustTrace . Это сделано Telerik , и это основная цель состоит в том, чтобы сделать трассировку / профилирование проще и быстрее сделать для всех типов приложений (Web / Silverlight / Desktop).

Если вы когда - либо найденных профилирование и оптимизация пугающим или медленно с другими инструментами, то JustTrace может быть стоит посмотреть.

Ответил 22/08/2011 d 16:42
источник пользователем

голоса
25

Не забывайте nProf - в втирают хороший, бесплатный профилировщика.

Ответил 06/08/2008 d 21:19
источник пользователем

голоса
14

Я нашел dotTrace Profiler от JetBrains быть отличным инструментом профилирования для .NET и их режим ASP.NET является качество.

Ответил 04/03/2009 d 23:23
источник пользователем

голоса
12

Муравьи Profiler . Я не использовал много, но я действительно не имеют каких - либо жалоб о муравьях. Визуализация очень полезно.

Ответил 06/08/2008 d 21:19
источник пользователем

голоса
11

Если вы ищете что - то быстро, легко и бесплатно, http://code.google.com/p/slimtune/ , кажется, сделать работу хорошо.

Ответил 29/12/2010 d 21:04
источник пользователем

голоса
11

AutomatedQA AQTime для синхронизации и SciTech MemProfiler для памяти.

Ответил 29/08/2008 d 10:49
источник пользователем

голоса
9

Я работал с JetBrains dotTrace для WinForms и приложения консоли (не тестируется на ASP.net пока), и она работает очень хорошо:

Недавно они также добавили «Personal License», который значительно дешевле, чем в корпоративном. Тем не менее, если кто-то знает более дешевые или даже бесплатные из них, я хотел бы услышать, как хорошо :-)

Ответил 06/08/2008 d 21:17
источник пользователем

голоса
7

Не забывайте удивительный SciTech профилировщика .net памяти

Это отлично подходит для отслеживания, почему ваше .net приложение работает из памяти.

Ответил 15/10/2008 d 23:25
источник пользователем

голоса
5

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

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

Это полезно не только при смене кода, но если у вас есть приложение, которое использует другую базу данных, скажем, для каждого клиента / заказчика. Если один клиент жалуется на медлительность, вы можете запустить сеанс профилирования с использованием их базы данных и сравнить результаты с «быстрой» базы данных, чтобы определить, какие операции вносят вклад в медлительности. Конечно, есть много инструментов производительности базы данных на стороне, но иногда я действительно помогает увидеть показатели производительности со стороны приложения (так как это ближе к тому, что пользователь видит на самом деле).

Итог: dotTrace отлично работает, а разница неоценима.

Ответил 08/04/2009 d 00:29
источник пользователем

голоса
4

AQTime является разумным, но имеет немного кривой обучения и не так проста в использовании , как встроенный в один в Team Suite

Ответил 04/03/2009 d 23:19
источник пользователем

голоса
3

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

Ответил 08/02/2010 d 14:15
источник пользователем

голоса
3

В прошлом я использовал профайлер , который поставляется с Visual Studio Team System , .

Ответил 31/08/2008 d 06:12
источник пользователем

голоса
2

Я хотел бы добавить YourKit Java и .NET профилировщика, я люблю его для Java, не пробовал версию .NET , хотя.

Ответил 15/06/2010 d 10:56
источник пользователем

голоса
2

Последняя версия МУРАВЬЕВ профилировщика памяти (я думаю, что это 5) просто качается !!! Я навязчивый утечку с помощью WinDbg и SOS, так как он оказался лучшим способом до того, я попытался ANTS и я получил его в течение нескольких минут. Действительно замечательный кусок программного обеспечения.

Ответил 07/07/2009 d 23:07
источник пользователем

голоса
2

Я сомневаюсь, что профайлер, который поставляется с Visual Studio Team System является лучшим профайлером, но я нашел, что это достаточно хорошо во многих случаях. Что конкретно вам нужно за то, что VS предложения?

EDIT: К сожалению, она доступна только в VS Team System,, но если у вас есть доступ к этому стоит проверить.

Ответил 04/03/2009 d 23:20
источник пользователем

голоса
2

Не пробовал сам, но , возможно , dotTrace ? Их ReSharper приложение, безусловно , является хорошим. Может быть dotTrace слишком :)

Ответил 04/03/2009 d 23:19
источник пользователем

голоса
2

Я работал с профилировщиком RedGate в прошлом. Сделал работу для меня.

Ответил 06/08/2008 d 21:17
источник пользователем

голоса
1

Если лицензирование является проблемой, вы можете попробовать Windbg для профилирования памяти

Ответил 02/02/2012 d 16:36
источник пользователем

голоса
1

Я тестировал JustTrace Telerik недавно, и хотя он находится далеко от готового продукта ребята идут в правильном направлении.

Ответил 02/09/2011 d 14:05
источник пользователем

голоса
1

Профайлер NuMega Правда времени живет в DevPartner студии на Micro Focus. Она обеспечивает линию и метод детализацию уровня для .NET приложений , требующих только PDB - файлы, ни источника , необходимого (но это помогает.) Он может различать алгоритмический тяжелые процедуры по сравнению с теми , с длинной I / O Уэйтсом с использованием нашего собственные для каждого потока в режиме ядра драйвера синхронизации. Версия 10.5 поставляется с новой поддержкой 64-процесса по 4 февраля 2011 года Shameless вилка: Я работаю на производственной линии DevPartner. Последующие в http://www.DevPartner.com новостей запуска 10.5.

Отказ от ответственности: Я менеджер по продуктам DevPartner в Micro Focus.

Ответил 31/01/2011 d 04:16
источник пользователем

голоса
1

Для меня SpeedTrace это лучший инструмент на рынке, потому что это не только поможет вам найти узкие места внутри приложений. Это также поможет вам в устранении неполадок, чтобы выяснить, почему приложение было сбой, ваша установка не была установлена, приложение повесила, производительность приложения иногда беден в зависимости от входных данных, например, для выявления медленных транзакций БД.

Ответил 07/08/2010 d 12:31
источник пользователем

голоса
1

Я должен принести удивительный инструмент для вашего сведения , которые я использовал некоторое время назад. AVIcode перехватчик студия . В моей предыдущей компании мы использовали этот замечательный инструмент для профилирования WebApplication ( Это должно быть самым крупным веб - приложение в мире и крупнейший гражданский ИТ - проект никогда не делал ). Группа производительности сделал чудеса с помощью этого великолепного инструмента. Это боль , чтобы настроить его, но это один раз активность и я бы сказал , что стоит время. Оформить заказ этой страницы для деталей.

Спасибо, Джеймс

Ответил 16/03/2010 d 22:07
источник пользователем

голоса
1

Анализатор производительности Intel® VTune ™ для быстрой выборки

Ответил 19/09/2008 d 09:48
источник пользователем

голоса
1

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

Ответил 19/09/2008 d 09:38
источник пользователем

голоса
0

Если вы на ASP.NET MVC, вы можете попробовать MVCMiniProfiler (http://benjii.me/2011/07/using-the-mvc-mini-profiler-with-entity-framework/)

Ответил 13/03/2012 d 15:41
источник пользователем

голоса
0

Мы выбрали YourKit Profiler для .NET в моей компании, как это было лучшее соотношение (цена по сравнению с функцией). Для небольшой компании, которая хочет иметь гибкое лицензирование (плавающую лицензию) это был идеальным выбор - Муравьи были разработчик Медальон места в то время.

Кроме того, он предоставил нам возможность прикрепить к запущенному процессу, который не удался с dotTrace. Остерегайтесь, однако, что прикрепление не самый лучший вариант, так как все, .NET будет замедляться, но это был единственный способ профилировать приложения .NET, созданные другими процессами. Что касается функций, Муравьев и dotTrace было лучше - но в конце концов YourKit был достаточно хорош.

Ответил 09/01/2012 d 17:12
источник пользователем

голоса
0

Я нашел много проблем в большой C # приложение , с помощью этого .

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

В подобных случаях, программа может быть настолько вялой, что только 2 образца достаточно, чтобы определить виновные сайты метода / функции / вызова свойства.

Ответил 05/06/2009 d 16:17
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more