Посмотрите память, используемую программой C, с помощью gprof

Я запускаю свою программу на C и хочу видеть, какую память она использует. Я использую профилировщик gprof. Возможно ли это с gprof? Или, может быть, мне нужно изучить профиль Valgrind?


person Patricio    schedule 27.06.2017    source источник
comment
У меня сложилось впечатление, что gprof в основном используется для измерения времени, а не для измерения объема используемой памяти. Valgrind больше заботит память. Я использовал его только для обнаружения «злоупотребления памятью»; есть и другие способы его использования, и один из них может подойти вам.   -  person Jonathan Leffler    schedule 27.06.2017


Ответы (2)


Если вы хотите пойти по маршруту Valgrind, Massif — это инструмент для использования:

valgrind --tool=massif your_app -your_options

person Paul Floyd    schedule 27.06.2017

Вы можете использовать gprof, но вам нужно убедиться, что вы скомпилировали свою программу на языке C с правильными опциями для профилирования (-pg). Например:

cc -o cprogram program.c othercode.c -g -pg

Чтобы использовать gprof, проверьте справочные страницы, но вкратце:

gprof <options> [executable-file [profile-data-files...]] [> outfile]

Надеюсь, это поможет!

person headbanger    schedule 27.06.2017
comment
Как это помогает OP просматривать используемую память? - person Paul R; 27.06.2017
comment
Я интерпретировал вопрос как профилирование работающего приложения. Если все, что хочет сделать OP, - это увидеть используемую память, тогда gprof (и связанные с ним параметры компилятора/компоновщика) не нужны, потому что «top» будет достаточно. Однако даже valgrind требует использования опций -pg. - person headbanger; 27.06.2017
comment
Вы также можете проверить valgrind-users.narkive.com/MPnV7HOw/ gcc-pg-valgrind-ошибки - person headbanger; 27.06.2017
comment
Спасибо за ваш комментарий. Я читаю о gprof. Я думаю, что gprof не может измерить используемую память. Это только для времени, затрачиваемого на каждую функцию и вызовы функций. Я собираюсь посмотреть профиль valgrid. - person Patricio; 27.06.2017