If you’re selling an API or an application which is deployed on production systems, one of the questions your customers might ask you is what is the memory footprint of your API/application in order for them to account for an increase of memory requirements due to using your product. After some research I think that the best tool for measuring and debugging any increases/decrease of your mem footprint is valgrind –tool=massif together with ms_print reporting tools.
Massif is a Heap memory profiler and will measure how much/when you allocate heap memory in your code and show the involved code. Run :
valgrind --tool=massif
this will execute the code and generate a massif.out.<pid> file that you may visualize with
ms_print massif.out.<pid>
Take a ride, the output is absolutely useful and you will have an histogram of how much memory is used at every sampling moment.