Date Posted: November 4, 2004
Update: June 10, 2009
Version 3.8 supports manual selection of various heap dump format.
What is HeapAnalyzer?
HeapAnalyzer allows the finding of a possible Java™ heap leak area through its heuristic search engine and analysis of the Java heap dump in Java applications.
Java heap areas define objects, arrays, and classes. When the Garbage Collector allocates areas of storage in the heap, an object continues to be live while a reference to it exists somewhere in the active state of the JVM; therefore the object is reachable. When an object ceases to be referenced from the active state, it becomes garbage and can be reclaimed for reuse. When this reclamation occurs, the Garbage Collector must process a possible finalizer and also ensure that any internal JVM resources that are associated with the object are returned to the pool of such resources. Java heap dumps are snap shots of Java heaps at specific times.
How does it work?
HeapAnalyzer analyzes Java heap dumps by parsing the Java heap dump, creating directional graphs, transforming them into directional trees, and executing the heuristic search engine.
The following are examples of features:
- List of Java heap leak suspects
- Recommendation of the size of kCluster
- List of gaps among allocated objects/classes/arrays
- Java objects/classes/arrays search engine
- List of objects/classes/arrays by type name
- List of objects/classes/arrays by object name
- List of objects/classes/arrays by address
- List of objects/classes/arrays by size
- List of objects/classes/arrays by size of child
- List of objects/classes/arrays by number of child
- List of objects/classes/arrays by frequency
- List of available heap spaces by size
- Tree view of Java heap dump
- Loading/saving processed Java heap dumps.
Further information is available in this Webcast replay: Using HeapAnalyzer to diagnose Java heap issues.
Read Jinwoo Hwang's article "Anatomy of a Java Finalizer" in the Java Developer's Journal.
About the technology author(s)

Jinwoo Hwang is a software engineer, a team leader, and a technical leader within the WebSphere Application Server Technical Support team, which is based in Research Triangle Park, N.C. He joined IBM in 1995 and worked with IBM Global Learning Services, IBM Consulting Services, and development prior to his current position. Mr. Hwang is an IBM Certified Solution Developer as well as a SUN Certified Programmer for the Java 2 platform. He is the architect and developer of the following tools:
- Web Services Validation Tool for WSDL and SOAP
- IBM HeapAnalyzer
- IBM Pattern Modeling and Analysis Tool for Java Garbage Collector
- IBM Thread and Monitor Dump Analyzer for Java
- IBM Trace and Request Analyzer for WebSphere Application Server
- IBM Web Server Plug-in Analyzer for WebSphere Application Server
- Database Connection Pool Analyzer for IBM WebSphere Application Server
- Performance Analysis Tool for Java
- Processor Tiime Analysis Tool for Linux
- IBM SDK Installer
- IBM MDD4J
Mr. Hwang is also the author of the book C Programming for Novices (Yonam Press, 1995).
