|
Problem |
HeapAnalyzer is available on
www.alphaworks.ibm.com for analyzing Java™ heap dumps. |
|
|
|
Solution |
What is HeapAnalyzer?
HeapAnalyzer implements a new technology that 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.
How does HeapAnalyzer 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 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 objects/classes/arrays by
alphabetical order
- List of available heap spaces by
size
- Available heap space distribution
chart
- Tree view of Java heap dump
- Locations of possible Java heap leak
areas
- Loading/Saving processed Java heap
dumps.
What can I find a Java heap leak with in
HeapAnalyzer?
The following is a snapshot of HeapAnalyzer. One of
the possible memory leak areas is highlighted in the tree view. There are
192 entries of java.util.Hashtable$Entry (44% of total Java heap, Heap
size is 258,494,664 bytes, TotalSize of java.util.Hashtable$Entry is
114,724,208 bytes) referenced in the org.apache.xml.utils.XMLReaderManager
object which has a memory leak (reported in XSLT4J Java 2.6.2).
The following snapshot shows that HeapAnalyzer located
a possible leak area
(com/ibm/ws/webcontainer/srt/CachedTargets) where
there is actually no leak, because cache objects behave like leak objects.
HeapAnalyzer cannot yet discern between leak objects and cache
objects.
What is required to run HeapAnalyzer?
- Operating System: Java 2 Platform,
Standard Edition
- Java Tool: Java Runtime Environment
1.4.1 or above
- Memory: Larger memory than the size of
Java heaps
How can I get Java heap dumps?
HeapAnalzyer analyzes heap dumps generated by IBM®
SDKs 1.3.1 and 1.4.x (Microsoft® Windows®, AIX®, Linux®, and zLinux®). The
IBM SDK provides an option to generate a heap dump with a minimal
performance impact trigger. To enable heap dump, set the IBM_HEAPDUMP
option. See the IBM JVM Diagnostics Guide for
details.
To generate a heap dump on Solaris for analysis by
HeapAnalyzer, you must set up an agent on the Java virtual machine (JVM™)
prior to reproducing your problem. To obtain this agent, and directions to
configure it, open up a Problem Management Record (PMR) with WebSphere
Application Server support. If you are in the United States, call
1-800-IBM-SERV. If you are outside of the United States, call your local
IBM support center.
There is no agent on HP-UX yet for analysis by
HeapAnalyzer.
Where can I get a copy of HeapAnalzyer?
HeapAnalyzer is available on AlphaWorks:
http://www.alphaworks.ibm.com/tech/heapanalyzer
You must register with AlphaWorks; registration is
free.
How can I install HeapAnalyzer?
- Unzip haNNN.zip (where NNN is version
number).
- Unzip readmeNNN.zip and read the readme
file.
- Run haNNN.jar with Java Runtime
Environment.
|
|
|
|
|
|
|
|