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


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

13 209

13 ответов:

CodeXL теперь заменил конец строки 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 и выше, называемый Микропрофилером. вы можете получить его здесь (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 инструмент, чтобы помочь мне запустить его и посмотреть на результаты.

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

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

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