.'" t
."
." Copyright 2004-2006 Sun Microsystems, Inc.  All Rights Reserved.
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
." Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
." CA 95054 USA or visit www.sun.com if you need additional information or
." have any questions.
."
." `
.TH jmap 1 "05 Aug 2006"
." Generated by html2roff

.LP
.SH NAME
jmap \- Memory Map
.LP
.SH "SYNOPSIS"
.LP

.LP
.nf
\f3
.fl
\fP\f3jmap\fP [ option ] pid
.fl
\f3jmap\fP [ option ] executable core
.fl
\f3jmap\fP [ option ] [server\-id@]remote\-hostname\-or\-IP
.fl
.fi

.LP
.SH "PARAMETERS"
.LP

.LP
.TP 3
option 
Options are mutually exclusive. Option, if used, should follow immediately after the command name. 
.TP 3
pid 
process id for which the memory map is to be printed. The process must be a Java process. To get a list of Java processes running on a machine, jps may be used. 
.TP 3
executable 
Java executable from which the core dump was produced. 
.TP 3
core 
core file for which the memory map is to be printed. 
.TP 3
remote\-hostname\-or\-IP 
remote debug server's (see jsadebugd) hostname or IP address. 
.TP 3
server\-id 
optional unique id, if multiple debug servers are running on the same remote host.
.br

.LP
.SH "DESCRIPTION"
.LP

.LP
.LP
\f3jmap\fP prints shared object memory maps or heap memory details of a given process or core file or a remote debug server. If the given process is running on a 64\-bit VM, you may need to specify the \f2\-J\-d64\fP option, e.g.:
.LP
.RS 3

.LP
.nf
\f3
.fl
jmap \-J\-d64 \-heap pid
.fl
\fP
.fi
.RE

.LP
\f3NOTE \- This utility is unsupported and may or may not be available in future versions of the JDK.\fP
.br

.LP
The only forms of jmap available on the Windows platform are 
.RS 3

.LP
jmap \-dump:<\f2dump\-options\fP> pid
.RE
and 
.RS 3

.LP
jmap \-histo[:live] pid
.RE
.SH "OPTIONS"
.LP

.LP
.TP 3
<no
option> 
When no option is used jmap prints shared object mappings. For each shared object loaded in the target VM, start address, the size of the mapping, and the full path of the shared object file are printed. This is similar to the Solaris \f3pmap\fP utility. 
.TP 3
\-dump:[live,]format=b,file=<filename> 
Dumps the Java heap in hprof binary format to filename. The \f2live\fP suboption is optional. If specified, only the live objects in the heap are dumped. To browse the heap dump, you can use jhat (Java Heap Analysis Tool) to read the generated file. 
.TP 3
\-finalizerinfo 
Prints information on objects awaiting finalization. 
.TP 3
\-heap 
Prints a heap summary. GC algorithm used, heap configuration and generation wise heap usage are printed. 
.TP 3
\-histo[:live] 
Prints a histogram of the heap. For each Java class, number of objects, memory size in bytes, and fully qualified class names are printed. VM internal class names are printed with '*' prefix. If the \f2live\fP suboption is specified, only live objects are counted. 
.TP 3
\-permstat 
Prints class loader wise statistics of permanent generation of Java heap. For each class loader, its name, liveness, address, parent class loader, and the number and size of classes it has loaded are printed. In addition, the number and size of interned Strings are printed. 
.TP 3
\-F 
Force. Use with jmap \-dump or jmap \-histo option if the pid does not respond. The \f2live\fP suboption is not supported in this mode. 
.TP 3
\-h 
Prints a help message.
.br
.TP 3
\-help 
Prints a help message.
.br
.TP 3
\-J<flag> 
Passes <flag> to the Java virtual machine on which jmap is run. 

.LP
.SH "SEE ALSO"
.LP
.RS 3
.TP 2
*
pmap (1) 
.TP 2
*
jhat 
.TP 2
*
jps 
.TP 2
*
jsadebugd 
.RE

.LP

.LP
 
