Измерение максимального использования памяти приложением c ++ (стек и куча) с массивом valgrind

В настоящее время я занимаюсь разработкой приложения C ++ на виртуальной машине Ubuntu 16.04. Мне нужно измерить общее использование памяти приложением (стек и куча), чтобы узнать его максимальный диапазон значений. Так как я довольно новичок в профилировании памяти, я использовал valgrind следующим образом:

valgrind --tool=massif --stacks=yes  ./c++_app
ms_print massif.out.<PID>

В декодированном файле я получил всплеск 12,5 МБ на соответствующем графике.
С другой стороны, системный монитор gnome показал 25 МБ как максимальное значение памяти.

Какому из двух результатов я должен доверять? Нужно ли перепроверить использование памяти с другим программным обеспечением?

0

Решение

Оба результата, вероятно, верны.
Профили массива куча и возможно стек.
Системный монитор, с другой стороны, предоставляет информацию об общем использовании памяти, включая размер рабочего образа (который также включает статическую память данных).

По вашему вопросу вы должны полагаться на результаты массива.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]