2016-02-05 2 views
0

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

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

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

ответ

0

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

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

valgrind --stats=yes ... 

Линия следующей

------ внутренние статистики использования памяти VALGRIND следует - ----

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

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

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