Какой лучший бесплатный профилировщик C++ для Windows? [закрытый]
Я ищу профилировщик, чтобы найти узкое место в моем коде C++. Я хотел бы найти бесплатный, ненавязчивый и хороший инструмент профилирования. Я разработчик игр, и я использую PIX для Xbox 360 и нашел его очень хорошим, но это не бесплатно. Я знаю информацию VTune, но это тоже не бесплатно.
13 ответов:
CodeXL теперь заменил конец строки D AMD Code Analyst и оба свободны, но не так продвинуты, как VTune. Там же сонливость, что очень просто, но делает работу во многих случаях.
Proffy довольно круто:http://pauldoo.com/proffy/
отказ от ответственности: я написал это.
существует инструментальный (функционально-точный) профилировщик для MS VC 7.1 и выше, называемый Микропрофилером. вы можете получить его здесь (x64) или здесь (x86). Это не требует никаких изменений или дополнений к вашему коду и способен отображать статистику функций с абонентами и вызываемыми абонентами в в режиме реального времени без необходимости закрытия приложения/остановки процесса профилирования.
интеграция с VisualStudio, так что вы можете легко включить / отключить профилирование для проекта. Также возможно установить его на чистую машину, для этого только нужно информация о символе быть расположенным вместе с исполняемым будучи профилированным.
этот инструмент полезен, когда статистическая аппроксимация от профилировщиков выборки, таких как Very Sleepy, недостаточна.
грубое сравнение показывает, что он бьет AQTime (когда он вызывается в инструментировании, на уровне функций). Следующая программа (полная оптимизация, встраивание отключено) работает в три раза быстрее с микро-профилировщиком, отображающим результаты в режиме реального времени, чем с AQTime, просто собирая статистику:
void f() { srand(time(0)); vector<double> v(300000); generate_n(v.begin(), v.size(), &random); sort(v.begin(), v.end()); sort(v.rbegin(), v.rend()); sort(v.begin(), v.end()); sort(v.rbegin(), v.rend()); }
Microsoft имеет Windows Performance Toolkit.
для этого требуется Windows Vista, Windows Server 2008, или Windows 7.
новое дополнение блестящий.
рекомендую Windows Performance Toolkit (WPT) или XPERF
в командной строке программе xperf командной строки инструмент для записи трассировки событий для Windows (ETW) в журналы, которые могут быть проанализированы с помощью инструмента xperfview Гуй.
используя аргумент командной строки stacktrace оказался бесценным инструментом для моей компании, поскольку он профилирует и устраняет узкие места. Одна из самых убедительных вещей заключается в том, что WPT может быть установлен в любое окружение даже на почтенном Windows XP.
On Windows 8 анализатор производительности Windows выводит xperf на еще более высокий уровень.
жесткие цифры и статистика, представленные в журналах ETW, не имеют аналогов в деталях, за исключением Visual studio profiler (2010/2012), который также является отличным, но не бесплатным AFAIK.
Если вы никогда не использовали xperf...вы не знаете, чего вам не хватает
Я использую AQTime, это один из лучших инструментов профилирования, которые я когда-либо использовал. Это не бесплатно, но вы можете получить 30-дневную пробную версию, так что если вы планируете оптимизировать и профилировать только один проект и 30 дней достаточно для вас, то я бы рекомендовал использовать это приложение. (http://www.automatedqa.com/downloads/aqtime/index.asp)
пожалуйста, попробуйте мой профилировщик, называемый cRunWatch. Это всего лишь два файла, поэтому он легко интегрируется с вашими проектами и требует добавления ровно одной строки для инструмента фрагмента кода.
http://ravenspoint.wordpress.com/2010/06/16/timing/
требуется библиотека Boost.
Я использовал " TrueTime - часть пакета DevPartner Compuware в течение многих лет. Есть [бесплатная версия] (вы можете попробовать Compuware DevPartner Performance Analysis Community Edition.) доступный.
Я Люк Stackwalker и это сделало работу для моего проекта Visual Studio.
другие интересные проекты:
Я использую VSPerfMon, который является автономным профилировщиком Visual Studio. Я написал GUI инструмент, чтобы помочь мне запустить его и посмотреть на результаты.
вы можете использовать EmbeddedProfiler, это бесплатно для Linux и Windwos.
профилировщик является навязчивым (по функциональности), но он не требует каких-либо изменений кода. Просто добавьте определенный флаг компилятора (- finstrument-functios для gcc/MinGW или /GH для MSVC) и свяжите библиотеку профилировщика. Он может предоставить вам полное дерево вызовов или просто список функций. Он имеет свой собственный графический интерфейс анализатора.