|
Problem(Abstract) |
HeapAnalyzer is available on www.alphaworks.ibm.com for
analyzing Java™ heap dumps. |
|
|
|
Resolving the
problem |
What is HeapAnalyzer?
HeapAnalyzer implements a new technology that allows for 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 about a Java heap leak within 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 analyses heap dumps generated by IBM SDKs 1.3.1 and 1.4.x
(Microsoft Windows, AIX, Linux, and Linux for zSeries). 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.
|
|
|
|
|
Cross Reference information |
Segment |
Product |
Component |
Platform |
Version |
Edition |
Application Servers |
Runtimes for Java Technology |
Java SDK |
|
|
|
|
|
|