Madmap is a tool to help analyze java heap dumps collected with -Xrunhprof:heap=dump,format=a,... or, starting with v1.1, binary dumps taken with jmap. It should help to find memory leaks by showing the live set and automatically calculating which objects are retaining the most heap size.

It displays the live heap recorded in the file, a table of finalizable objects, and sorts the roots in several different ways to find the objects holding the largest amount of retained heap.

Madmap automatically takes advantage of multiple CPUs to load ascii heap dump files as fast as possible. The main goal of Madmap is to load the heap dump in a modest amount of memory. Usually ascii files can be loaded in less than 2x the size of the input file. Binary dumps should fit in less than 3x the file size. Further improvement to the footprint is ongoing.

Madmap has a very simple GUI, or can be run from the command line with no GUI if desired. In GUI mode, the main output will also go to the stdout. You can save the results from the GUI log pane by the File menu.

Madmap is mainly tested on Mac OS X and Linux. It should work with 32- and 64-bit heap dumps.

The download site for Madmap is http://sourceforge.net/projects/madmap/