Какие бесплатные профилировщики с минимальными издержками (статистические) можно использовать в Linux? - PullRequest
3 голосов
/ 03 февраля 2009

Желательно из репозиториев Ubuntu.

Ответы [ 5 ]

3 голосов
/ 03 февраля 2009

Другие упоминали OProfile ; для полного системного статистического профилирования на современных установках Linux он действительно потрясающий.

Более почтенный инструмент (который не требует поддержки ядра и, следовательно, будет работать в старых версиях Linux или даже не Linux) - GNU gprof , включенный в binutils (и, следовательно, несомненно, уже установлен в вашей среде разработки).

Чтобы использовать gprof, просто скомпилируйте ваше приложение с аргументом -pg в gcc; файл с именем gmon.out будет создан после выхода из программы, и gprof затем можно будет использовать для анализа этого файла.

2 голосов
/ 16 февраля 2009

Простой, но эффективный метод - запустить программу под GDB и обработать сигнал SIGINT. Во время работы программы сгенерируйте SIGINT вручную, набрав control-c или что-то еще, и пока он остановлен, запишите стек вызовов. Делайте это несколько раз, например, 10 или 20, пока программа субъективно медленная. Это даст вам очень хорошее представление о том, куда уходит время.

Этот метод не дает точного времени, но он точно находит инструкции, включая инструкции по вызову, которые стоят больше всего времени.

Как мне профилировать код C ++, работающий в Linux?

1 голос
/ 03 февраля 2009

Sysprof - хороший профилировщик, похожий на OProfile (также имеет графический интерфейс GTK). который доступен в репозитории Ubuntu. Это профилировщик уровня ядра, для которого требуется модуль ядра, в отличие от gprof, однако, в отличие от gprof, он может профилировать многопоточные приложения.

0 голосов
/ 03 февраля 2009

У меня был хороший успех с oprofile (http://oprofile.sourceforge.net/news/), который также доступен в репозиториях Ubuntu. Он не требует перекомпиляции и не имеет никаких ограничений в отношении общих объектов или тому подобного.

0 голосов
/ 03 февраля 2009

Есть OProfile . Это не так сложно в использовании, но несколько глючит.

...