Как да измерим използването на паметта на 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