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