Я создаю программу, ориентированную на производительность для школьного проекта, и поэтому я решил профилировать использование памяти моей программой.
Для этого я использовал Valgrind, как с, так и безМассив инструмент.Результаты использования каждого теста приведены ниже:
Запуск valgrind --leak-check=full -v ./main
дал мне вышеуказанный вывод.Хорошо, понял, в общей сложности около 67 МБ использования кучи, верно?
Но затем я захотел узнать, сколько памяти было выделено моей программой во время выполнения, поэтому я немного покопался и нашел инструмент Massif, который именно это и делает.
Таким образом, я запустил valgrind --tool=massif ./main
, а затемms_print massif.out.<pid>
, в котором <pid>
- это идентификатор процесса, который сейчас мертв, который выполнил мою программу.Это дало мне вывод, показанный на рисунках 2 выше.
Итак, мой вопрос: как может быть, что общее использование кучи составляет около 67 МБ, но Massif говорит, что в определенный момент оно достигло пика в 109,9 МБ?