В настоящее время я занимаюсь разработкой приложения C ++ на виртуальной машине Ubuntu 16.04. Мне нужно измерить общее использование памяти приложением (стек и куча), чтобы узнать его максимальный диапазон значений. Так как я довольно новичок в профилировании памяти, я использовал valgrind следующим образом:
valgrind --tool=massif --stacks=yes ./c++_app
ms_print massif.out.<PID>
В декодированном файле я получил всплеск 12,5 МБ на соответствующем графике.
С другой стороны, системный монитор gnome показал 25 МБ как максимальное значение памяти.
Какому из двух результатов я должен доверять? Нужно ли перепроверить использование памяти с другим программным обеспечением?
Оба результата, вероятно, верны.
Профили массива куча и возможно стек.
Системный монитор, с другой стороны, предоставляет информацию об общем использовании памяти, включая размер рабочего образа (который также включает статическую память данных).
По вашему вопросу вы должны полагаться на результаты массива.
Других решений пока нет …