I just attended the excellent presentation “Memory Analysis in a Nutshell” by Elena Nayashkova. Elena is comitter of the Eclipse Memory Analyzer project, which is developed by SAP. (SAP MAT Wiki)
The tool offers excellent analysis functions for HPROF based memory dumps. Support for IBM JVM Heapdumps was promised by Elena for end of this year. Runtime analysis of the heap are not supported – the tool focuses solely on the evaluation of the dumps.
The most interesting features at a glance:
- Indexing of the heapdumps on first load. This makes the processing time of large heaps very quick (which she demonstrated impressively with a 2 GB dump) and also very large dumps can be analyzed. Most Profiler have problems here, working with large heaps is very slow and the 2 GB limit for 32-bit machines limites the heap dump size. My experience is that heaps> 1 GB are difficult to analyze with conventional tools and Profilern.
- Dominator Tree. Creates a tree for the dominant objects in the heap with all the objects that would be garbage collected if the dominating object would be dereferenced. The tree may sorted along classes, packages or ClassLoaders.
- Automatic memory leak analysis with the leak hunter. Special evaluation functions create a report with the potential memory leaks and all the required information, such as references and Root Retained Memory / Objects.
- Component Report. In addition to the memory leaks are also critical Memory Usage Patterns are analyzed. Examples are “Duplicate strings” or “Collection Usage”. Duplicate strings means that MAT occurring several strings with the same content searches and displays the references. Collection Usage finds empty collection classes and shows the memory.
- Expandability. The tool can be extended with your own search criterias and views.
- Reporting. There are interesting and visually appealing reports for certain functions that can be sent to developers, etc. and contain all information for the analysis.
Conclusion: A very interesting tool for anyone who is its application to memory leaks or high memory consumption needs to analyse.