Какой бесплатный профилировщик C++ для Windows лучше всего?[закрыто]
Вопрос
Я ищу профилировщик, чтобы найти узкое место в моем коде на C++.Я хотел бы найти бесплатный, ненавязчивый и хороший инструмент для профилирования.Я разработчик игр, использую PIX для Xbox 360 и считаю его очень хорошим, но не бесплатным.Я знаю Интел ВТюн, но это тоже не бесплатно.
Решение
КодXL теперь заменил End Of Line'd Аналитик кода AMD и оба бесплатны, но не так продвинуты, как VTune.Есть также Сонный, что очень просто, но во многих случаях помогает.
Другие советы
Очень сонный — это профилировщик ЦП C/C++ для систем Windows (бесплатно).
CppCheck — статический профилировщик ЦП C/C++ для систем Windows (бесплатно).
Проффи очень крутой: http://pauldoo.com/proffy/
Отказ от ответственности:Я написал это.
Существует инструментальный (точный по функциям) профилировщик для 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());
}
У Microsoft есть Набор инструментов для повышения производительности Windows.
Требуется Windows Vista, Windows Сервер 2008, или Windows 7.
Новое дополнение блестящий.
я очень рекомендую Набор инструментов для повышения производительности Windows (WPT) или XPERF
Инструмент командной строки xperf записывает журналы трассировки событий для Windows (ETW), которые можно проанализировать с помощью инструмента xperfview с графическим интерфейсом.
С использованием аргумент командной строки stacktrace оказался бесценным инструментом для моей компании, поскольку он выявляет и устраняет узкие места.Одним из наиболее привлекательных моментов является то, что WPT можно установить в любой среде, даже на почтенных Windows XP.
На Windows 8 — анализатор производительности Windows выводит xperf на еще более высокий уровень.
Точные цифры и статистика, представленные в журналах ETW, не имеют аналогов в деталях, за исключением профилировщика Visual Studio (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.
я использовал Люк Стэкуокер и это помогло моему проекту Visual Studio.
Другие интересные проекты:
Я уже много лет использую TrueTime — часть пакета DevPartner от Compuware.Доступна [бесплатная версия] (вы можете попробовать Compuware DevPartner Performance Analysis Community Edition).
Я использую VSPerfMon, который является автономным профилировщиком Visual Studio.Я написал инструмент с графическим интерфейсом, который поможет мне запустить его и посмотреть на результаты.
Вы можете использовать EmbeddedProfiler, он бесплатен как для Linux, так и для Windwos.
Профилировщик навязчив (по функционалу), но не требует каких-либо модификаций кода.Просто добавьте определенный флаг компилятора (-finstrument-functios для gcc/MinGW или /GH для MSVC) и свяжите библиотеку профилировщика.Он может предоставить вам полное дерево вызовов или просто список функций.Имеет собственный графический интерфейс анализатора.