it-swarm-ru.tech

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

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

216
ugasoft

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

130
yrp

Very Sleepy - профилировщик ЦП C/C++ для систем Windows (бесплатно).
CppCheck - статический профилировщик ЦП C/C++ для систем Windows (бесплатно).

59
lsalamon

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

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

34
pauldoo

Для MS VC 7.1 и выше имеется инструментальный (точный по функциям) профилировщик, который называется MicroProfiler. Вы можете получить его здесь (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());
}
16
Arty

Microsoft имеет Windows Performance Toolkit .

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

10
epotter

Новое дополнение Shiny .

7
Buggieboy

Я настоятельно рекомендую Windows Performance Toolkit (WPT) или XPERF

Средство командной строки xperf для командной строки записывает журналы трассировки событий для Windows (ETW), которые можно проанализировать с помощью инструмента xperfview с графическим интерфейсом.

Использование аргумент командной строки stacktrace оказалось неоценимым инструментом для моей компании, так как оно определяет и устраняет узкие места. Одна из самых неотразимых вещей заключается в том, что WPT можно установить в любой среде, даже на почтенной Windows XP .

В Windows 8 анализатор производительности Windows выводит xperf на еще более высокий уровень.

Твердые цифры и статистика, представленные в журналах ETW, не имеют аналогов в деталях, за исключением визуального студийного профилировщика (2010/2012), который также хорош, но не бесплатный AFAIK.

Если вы никогда не использовали xperf ... вы не знаете, чего вам не хватает

5
MW_dev

Я использую AQTime, это один из лучших инструментов профилирования, которые я когда-либо использовал. Это не бесплатно, но вы можете получить 30-дневную пробную версию, поэтому, если вы планируете оптимизировать и профилировать только один проект, и вам достаточно 30 дней, я бы порекомендовал использовать это приложение. ( http://www.automatedqa.com/downloads/aqtime/index.asp )

3
dudico

Пожалуйста, попробуйте мой профилировщик, называется cRunWatch. Это всего лишь два файла, поэтому его легко интегрировать с вашими проектами, и для этого нужно добавить ровно одну строку для инструмента.

http://ravenspoint.wordpress.com/2010/06/16/timing/

Требуется библиотека Boost.

2
ravenspoint

Я использовал Luke Stackwalker , и он сделал работу для моего проекта Visual Studio.

Другие интересные проекты:

1
INS

Я использовал TrueTime - часть пакета Compuware DevPartner в течение многих лет. Доступна [бесплатная версия] (вы можете попробовать Compuware DevPartner Performance Analysis Community Edition.).

0
Harold Ekstrom

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

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

0
Mi-La