Какой лучший бесплатный профилировщик C++ для Windows? [закрытый]

Я ищу профилировщик, чтобы найти узкое место в моем коде C++. Я хотел бы найти бесплатный, ненавязчивый и хороший инструмент профилирования. Я разработчик игр, и я использую PIX для Xbox 360 и нашел его очень хорошим, но это не бесплатно. Я знаю информацию VTune, но это тоже не бесплатно.

13 ответов


CodeXL теперь заменил конец Line'D AMD Code Analyst и оба свободны, но не так продвинуты, как VTune. Есть также сонливость, что очень просто, но делает работу во многих случаях.


Сон является C / C++ CPU profiler для систем Windows (бесплатно).
cppcheck умеет является статическим C / C++ CPU profiler для систем Windows (бесплатно).


Proffy довольно круто:http://pauldoo.com/proffy/

отказ от ответственности: я написал это.


существует инструментальный (функционально-точный) профилировщик для MS VC 7.1 и выше под названием MicroProfiler. вы можете получить его здесь (x64) или здесь (x86). Это не требует каких-либо изменений или дополнений к вашему коду и может отображать статистику функций с абонентами и абонентами в в режиме реального времени без необходимости закрытия приложения/остановки процесса профилирования.

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

этот инструмент полезен, когда статистическая аппроксимация от профилировщиков выборки, таких как Very Sleepy, недостаточна.

грубое сравнение показывает, что он бьет AQTime (когда он вызывается в инструментовке, на уровне функций). Следующая программа (полная оптимизация, встраивание disabled) работает в три раза быстрее с микро-профилировщиком, отображающим результаты в режиме реального времени, чем с 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.

для этого требуется Windows Vista,Windows Server 2008, или Windows 7.


новое дополнение блестящий.


рекомендую инструментарий производительности Windows (WPT) или программе xperf

инструмент командной строки xperf записывает трассировку событий для журналов Windows (ETW), которые могут быть проанализированы с помощью инструмента GUI 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 инструмент, чтобы помочь мне запустить его и посмотреть на результаты.

http://code.google.com/p/vsptree/


вы можете использовать EmbeddedProfiler, это бесплатно для Linux и Windwos.

профилировщик является навязчивым (по функциональности), но он не требует каких-либо изменений кода. Просто добавьте определенный флаг компилятора (- finstrument-functios для gcc/MinGW или /GH для MSVC) и свяжите библиотеку профилировщика. Он может предоставить вам полное дерево вызовов или просто список функций. Он имеет свой собственный графический интерфейс анализатора.