|Valgrind 3.3 - Advanced Debugging and Profiling for GNU/Linux applications|
by J. Seward, N. Nethercote, J. Weidendorfer and the Valgrind Development Team
Paperback (6"x9"), 164 pages
RRP £12.95 ($19.95)
8.2 Using Massif
First off, as for the other Valgrind tools, you should compile with debugging info (the ‘-g’ flag). It shouldn't matter much what optimisation level you compile your program with, as this is unlikely to affect the heap memory usage.
Then, to gather heap profiling information about the program ‘prog’, type:
$ valgrind --tool=massif prog
The program will execute (slowly). Upon completion, no summary statistics are printed to Valgrind's commentary; all of Massif's profiling data is written to a file. By default, this file is called ‘massif.out.<pid>’, where ‘<pid>’ is the process ID.
To see the information gathered by Massif in an easy-to-read form, use the ms_print script. If the output file's name is ‘massif.out.12345’, type:
% ms_print massif.out.12345
ms_print will produce (a) a graph showing the memory consumption over the program's execution, and (b) detailed information about the responsible allocation sites at various points in the program, including the point of peak memory allocation. The use of a separate script for presenting the results is deliberate: it separates the data gathering from its presentation, and means that new methods of presenting the data can be added in the future.
|ISBN 0954612051||Valgrind 3.3 - Advanced Debugging and Profiling for GNU/Linux applications||See the print edition|