Как измерить использование памяти Valgrind?

У меня есть приложение, написанное на C, которое использует оболочку памяти zmalloc (заимствованную из Redis) для отслеживания общей динамической памяти, выделенной моей программой. Я также использую Valgrind в Linux для поиска утечек памяти и недопустимых обращений к памяти.

Проблема в том, что zmalloc и top показывают совершенно разные отчеты об использовании памяти, когда я использую Valgrind. Это заставляет меня думать, что сам Valgrind потребляет слишком много памяти.

Как измерить использование памяти Valgrind?


person Mario Borges    schedule 05.02.2016    source источник


Ответы (1)


Инструменты valgrind, такие как memcheck или helgrind, используют много памяти для отслеживания различных аспектов вашей программы. Таким образом, это нормально, что top показывает намного больше памяти, чем сама выделяет ваша программа.

Если вы хотите иметь представление о памяти, используемой valgrind, вы можете сделать:

valgrind --stats=yes ...

Следующие строки

------ Статистика использования внутренней памяти Valgrind приведена ниже ------

даст некоторую информацию об использовании памяти valgrind.

Используйте valgrind --profile-heap=yes ... для детального использования памяти.

Обратите внимание, что если вы не используете стандартную библиотеку malloc, вам может понадобиться использовать параметр --soname-synonyms=..., чтобы такие инструменты, как memcheck или helgrind, работали должным образом. к

person phd    schedule 14.02.2016