Бесплатный .NET Profiler для .NET 4.0 смешанный код - PullRequest
6 голосов
/ 28 июня 2011

Я проверил некоторые из профилировщиков производительности, упомянутых здесь .Но ...

  • EQATec не работал для меня, потому что у меня есть много сборок, которые я хочу профилировать, и у него есть ограничение на сборку для профилирования.Сколько хлопот получается получить бесплатную лицензию?Я бы пошел на это, если бы кто-то гарантировал мне, что EQATec может профилировать как управляемый, так и неуправляемый код
  • SlimTune только профилировал мой управляемый код, даже если я установил "Собственные функции профиля" в "True"
  • XTE Profiler больше не бесплатен
  • У нас есть копия AQTime 6, которую мы купили ранее, но, похоже, она не поддерживает приложения .NET 4.0 (она даже не может запустить мое приложение)
  • Мы используем Visual Studio 2010 Professional с пакетом обновления 1 (SP1), поэтому у нас нет профилировщика Visual Studio
  • Я попробовал «профилирование бедняка» (много раз останавливал программу и видел, где она), но я получаюслишком случайные результаты, и я больше привык к традиционному профилированию

(я потратил на это целый день, извините, если был слишком негативен)

ОБНОВЛЕНИЕ : После того как я очистил свое решение, собрал его снова и проверил, что вся информация отладки (.pdb) была скопирована в тот же каталог, что и исполняемый файл, я снова попробовал AQTime, и он заработал!Он показал мне информацию о регулярном времени для управляемого и неуправляемого кода, поэтому моя проблема решена.Тем не менее, я использую платный профилировщик, поэтому вопрос останется открытым, пока я не посмотрю на xperf или кто-то не придумает что-то еще

Ответы [ 5 ]

3 голосов
/ 30 июня 2011

AQTime имеет бесплатную версию своего последнего профилировщика (http://smartbear.com/products/free-tools/aqtime-standard/). Он поддерживает .Net 4, но я сомневаюсь, что он может сделать смешанный профиль Native и Managed.

Если вы действительно серьезно относитесь к этому, вы можете заглянуть в инструменты Microsoft xperf (http://msdn.microsoft.com/en-us/performance). У них крутая кривая обучения, но они бесплатны, и я сомневаюсь, что любой коммерческий профилировщик может делать то, что может xperf (инструментарий находится в ОС , а не в отдельном процессе, поэтому требуется либо Vista, win7 или win2K8.) Я жду, когда кто-нибудь напишет хороший графический интерфейс вокруг него, но это займет немного времени ...; -)

xperf профилирует ваш собственный код, и вы можете загрузить свои символы в просмотрщик результатов. Я не думаю, что это снизится до степени детализации каждой строки. У него есть .Net CLR Provider (http://msdn.microsoft.com/en-us/library/dd264809.aspx). Крутая вещь в xperf заключается в том, что он также может отображать другие процессы, которые могут влиять на вашу производительность (вы можете отключить его и профилировать только свой собственный процесс). Например: он способен обнаружить, что ваш ввод-вывод работает медленно из-за плохо написанного драйвера USB, антивирусного сканера или программного обеспечения брандмауэра. Традиционный профилировщик показывает только медленный ввод-вывод, заставляя вас сосредоточиться на не узком месте.

Кстати, есть также интерфейс ICorProfilerCallback, который вы можете использовать, чтобы написать свой собственный профилировщик (http://msdn.microsoft.com/en-us/library/s5ec0es1.aspx).

1 голос
/ 10 июля 2011

Я почти уверен, что ответ на ваш вопрос: "Там нет ни одного".

При сравнении целого ряда профилей .NET несколько месяцев назад я обнаружил, что только очень немногие могут делать смешанные .NET/ Собственное профилирование: AQTime (599 долларов) и Glowcode (499 долларов) могут.Или так они говорят - я не пробовал.

EQATEC, Visual Studio, ANTS, Jetbrains dotTrace, Yourkit, XteProfiler, Slimtune и т. Д. Не смогли, поэтому я сомневаюсь, что вы найдете бесплатный профилировщик в ближайшее времяМожно.

0 голосов
/ 29 июня 2011

CLR Profiler 4 от Microsoft предоставляется бесплатно. Вы пробовали это?

Что вы ищете в неуправляемой части профилировщика?

0 голосов
/ 29 июня 2011

Ваше беспокойство по поводу EQATEC Profiler легко разрешается: оно выполняет только управляемое профилирование .NET, а не какое-либо неуправляемое профилирование.

Как показано в ценах , фактическая функция профилирования отличается только количеством сборок, которые можно профилировать одновременно. Таким образом, бесплатное издание за $ 0 профилирует WP7-приложение с одной сборкой так же хорошо, как корпоративное издание за $ 999. За дополнительную цену вы получаете возможность профилировать больше сборок одновременно и несколько дополнительных функций, таких как печать, сравнение, мин / макс и т. Д.

Получить бесплатную лицензию , попробовав EQATEC Analytics, как говорят, легко. Переход на неограниченную корпоративную лицензию - довольно популярный выбор, и многие достигли ее всего за пару часов. Получение бесплатной стандартной лицензии за 99 долларов не должно занимать более 10 минут, если вы в порядке. Пожалуйста, обратите внимание: я работаю в EQATEC, и мы фактически раздаем так много бесплатных лицензий каждый день, что теперь это почти становится бременем, потому что каждая из них обрабатывается вручную (да, серьезно!), Поэтому это конкретное предложение может не действовать вечно.

0 голосов
/ 29 июня 2011

ОП: «Я бы пошел на это, если бы кто-то гарантировал мне, что XXXX может профилировать как управляемый, так и неуправляемый код»

Наш C # Timing Profiler не зависит от того, как ваш код C #компилируется (управляемый или неуправляемый, или смешанный).Это должно нормально работать для этого.

...