Можно ли получить графическое представление результатов gprof?

Мне интересно получить профилирование какой-нибудь программы обработки чисел. Я скомпилировал его с параметрами -g и -pg, связал и получил gmon.out. После прочтения информации (обычный текст) это выглядит немного некрасиво. Интересно, есть ли какие-нибудь инструменты с открытым исходным кодом для получения графического представления 10 функций, в которых программа проводит большую часть времени, а также диаграммы потоков.

Спасибо


person Open the way    schedule 13.03.2010    source источник


Ответы (2)


Gprof2Dot от jrfonseca - это инструмент, который преобразует вывод многих профилировщиков, в том числе gprof, в точечный график.

person msw    schedule 13.03.2010
comment
Ух ты, похоже, отличный инструмент ... спасибо за ссылку! Отличный ответ - person Sam Post; 13.03.2010
comment
спасибо большое! А теперь короткий вопрос. Как теперь получить графическое представление потока управления программой. Я имею в виду, какие функции вызываются и в каком порядке, и какой процент тратится на каждую из них. спасибо - person Open the way; 13.03.2010
comment
@Werner: График вызовов Gprof2Dot этого не делает? Если нет, я, должно быть, неправильно вас понял. Или: code.google.com/p/jrfonseca/wiki/ - person msw; 13.03.2010
comment
По умолчанию он показывает только те функции, которые занимают определенный процент выполнения, и игнорирует многие функции в стеке. С учетом сказанного, я бы рекомендовал проверить valgrind / kcachegrind (см. Комментарий Нормана Рэмси или gernotklingler.com/blog/). - person cs01; 21.12.2016

Не совсем ответ на ваш вопрос, но, возможно, решение вашей проблемы: я переключился с gprof на инструмент callgrind valgrind, в первую очередь из-за невероятного графического инструмента kcachegrind, который можно использовать для визуализации результатов. Он интерактивен, поэтому вы можете увеличивать интересные части графика вызовов.

Gprof2dot работает как с callgrind, так и с gprof.

person Norman Ramsey    schedule 13.03.2010
comment
Но есть также простой xdot.py, который представляет собой интерактивную программу просмотра файлов .dot. github.com/jrfonseca/xdot.py - person stanm; 10.09.2014
comment
Поцарапайте это - так много конфет в kcachegrind! O.O - person stanm; 10.09.2014
comment
Было бы замечательно, если бы kcachegrind мог открыть вывод gprof: https://stackoverflow.com/questions/7274095/view-gprof-output-in-kcachegrind - person Ciro Santilli 新疆再教育营六四事件ۍ 14.03.2020
comment
Callgrind дает только количество команд, а gprof дает фактический временной профиль. Я не рекомендую переходить на callgrind только из-за его графического интерфейса. - person hansolo; 30.04.2020