jhat
Java Heap Analysis Tool
Synopsis
jhat [
options ] <heap-dump-file>
add an example, a script, a trick and tips
examples
description
The jhat
command parses a java heap dump file and launches a
webserver. jhat enables you to browse heap dumps using your
favorite webbrowser. jhat supports pre-designed
queries (such as ’show all instances of a known class
"Foo"’) as well as OQL (Object
Query Language) - a SQL-like query
language to query heap dumps. Help on OQL is available from
the OQL help page shown by jhat. With the default port, OQL
help is available at http://localhost:7000/oqlhelp/
There are
several ways to generate a java heap dump:
*
Use jmap -dump option to obtain a heap dump at
runtime;
*
Use jconsole option to obtain a heap dump via
HotSpotDiagnosticMXBean @
http://java.sun.com/javase/6/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticsMXBean.html
at runtime;
*
Heap dump will be generated when
OutOfMemoryError is thrown by specifying
-XX:+HeapDumpOnOutOfMemoryError VM option;
*
Use hprof @
http://java.sun.com/developer/technicalArticles/Programming/HPROF.html.
NOTE:
This tool is experimental and may not be
available in future versions of the JDK.
options
-stack
false/true
Turn off tracking object
allocation call stack. Note that if allocation site
information is not available in the heap dump, you have to
set this flag to false. Default is true.
-refs false/true
Turn off tracking of references
to objects. Default is true. By default, back pointers
(objects pointing to a given object a.k.a referrers or
in-coming references) are calculated for all objects
in the heap.
-port
port-number
Set the port for the
jhat’s HTTP server. Default is 7000.
-exclude
exclude-file
Specify a file that lists data
members that should be excluded from the "reachable
objects" query. For example, if the file lists
java.lang.String.value, then, whenever list of
objects reachable from a specific object "o" are
calculated, reference paths involving
java.lang.String.value field will not considered.
-baseline
baseline-dump-file
Specify a baseline heap dump.
Objects in both heap dumps with the same object ID will be
marked as not being "new". Other objects will be
marked as "new". This is useful while comparing
two different heap dumps.
-debug int
Set debug level for this tool.
0 means no debug output. Set higher values for more verbose
modes.
-version
Report version number and
exit.
-h
Output help message and
exit.
-help
Output help message and
exit.
-J<flag>
Pass <flag> to the Java
virtual machine on which jhat is run. For example,
-J-Xmx512m to use a maximum heap size of
512MB.
parameters
options
Options, if used, should follow immediately after the command
name.
heap-dump-file
Java binary heap dump file to be browsed. For a dump file that
contains multiple heap dumps, you may specify which dump in the
file by appending "#<number> to the file name, i.e.
"foo.hprof#3".
see also
*
jmap - Java Memory Map
*
jconsole - Java Monitoring and Management
Console
*
hprof - Heap and CPU profiling tool @
http://java.sun.com/developer/technicalArticles/Programming/HPROF.html