Java manages memory through garbage collection algorithms, but even the best algorithm is not immune to a programmer's mistake. It is not always reasonable to use allocation traces to find those mistakes, as tracing slows down the application significantly and is not possible at all when application has already crashed with an OutOfMemoryError. That is when off-line analysis of a heap dump becomes the only option. A heap dump contains all Java objects alive at a given time. However, just looking into the list of objects and reference graph is not efficient in isolating a memory leak. That is why Memory Analyzer extracts all the necessary information from the heap dump to enable faster troubleshooting of the problem, namely:
Until recently the analysis was performed on the de-facto standard HPROF formatted heap dumps, but now the tool has been extended to offer support for IBM heap dumps, obtained from the Diagnostic Tooling Framework for Java (DTFJ).
The focus of this presentation is on:
Andrew Johnson is a software engineer at the Java Technology Centre, IBM Hursley, England. He joined IBM in 1988, and since 1996 has worked on Java virtual machines, compilers and tools for diagnosing Java problems. He wrote an adapter for the Memory Analyzer Tool to read dumps from IBM JVMs.
Elena Nayashkova is a Software Developer in the Java Server Technology group of SAP. She joined the company in 2006 and currently works in a team developing the Memory Analyzer tool. She is an active developer and committer on the Eclipse Memory Analyzer project, contributed by SAP.