Начальный уровень
Уровня
Senior
Я рекомендую делать снимки стека, для которых полезно использовать pstack . Вот еще некоторая информация:
Если хотите чтобы потратить деньги, Zoom выглядит неплохим инструментом.
Для повышения производительности вы можете попробовать Callgrind, инструмент Valgrind. Вот хорошая статья , демонстрирующая его в действии .
Канонический пример инструмента полного профилирования системы (для Solaris, OS X, FreeBSD) - это DTrace . Но он еще не полностью доступен для Linux (вы можете попробовать здесь , но этот сайт для меня в данный момент не работает, и я сам не пробовал). Существует множество инструментов в разной степени полезности для выполнения полного профилирования системы и профилирования ядра в Linux.
Вы можете рассмотреть возможность изучения:
Скомпилируйте с помощью -pg, запустите программу, а затем используйте gprof
Компиляция (и компоновка) с -pg добавляет код профилирования и библиотеки профилирования к исполняемому файлу, который затем создает файл с именем gmon.out, содержащий информация о времени. gprof отображает графики вызовов и их (абсолютное и относительное) время.
Подробнее см. man gprof
.
. Компиляция (и компоновка) с -pg добавляет код профилирования и библиотеки профилирования к исполняемому файлу, который затем создает файл с именем gmon.out, содержащий информацию о времени. gprof отображает графики вызовов и их (абсолютное и относительное) время.
Подробнее см. man gprof
.
. Компиляция (и компоновка) с -pg добавляет код профилирования и библиотеки профилирования к исполняемому файлу, который затем создает файл с именем gmon.out, содержащий информацию о времени. gprof отображает графики вызовов и их (абсолютное и относительное) время.
Подробнее см. man gprof
.
профиль может вас заинтересовать. В Ubuntu должны быть все необходимые пакеты.
Если вы можете перенести свое приложение на freeBSD, OS X или Solaris, вы можете использовать dtrace, хотя dtrace ориентирован на аналитиков инструмент - то есть вам нужно управлять им - читайте: сценарий. Ничто другое не может дать вам необходимый уровень детализации; Dtrace не может просто профилировать задержки вызовов функций в пользовательском пространстве; он также может следовать за переключением контекста в ядро.
Описание использования -gp и gproff здесь http://www.ibm.com/developerworks/library/l-gnuprof.html
Как уже упоминалось, ответ FOSS состоит в том, чтобы выполнить сборку с -pg, а затем использовать gprof для анализа вывода. Если это продукт / проект, который оправдывает вложение денег, у меня также возникнет соблазн использовать профилировщик IBM / Rationals Quantify, так как это упрощает просмотр данных профилирования, детализацию до уровня строки или просмотр в 10000 футов 'level.
Конечно, может быть доступна программа просмотра для gprof, которая может делать то же самое, но мне ничего не известно.