1. jps
jps - 列出目标操作系统上检测到的Java虚拟机(JVM)进程。此命令是实验性的,不受支持。
1.1 语法
jps [options] [hostid]
options: 详见下文 OPTIONS 部分。
hostid:hostid 需要生成进程报告的主机标识符(ip, hostname)。hostid可以包括可选组件,这些组件指示通信协议、端口和其他特定于实现的数据。详见下文 HOST IDENTIFIER 部分。
1.2 描述
jps 命令列出目标系统上检测到的Java HotSpot虚拟机(进程)。该命令仅限于报告它具有访问权限的JVM的信息。
如果在不指定hostid的情况下运行jps命令,那么它将在本地主机上搜索检测JVM。如果以一个hostid开头,那么它将使用指定的协议和端口在指定的主机上搜索JVM(进程)。假设目标主机上运行一个jstatd进程。
jps 命令为目标系统上找到的每个检测JVM报告本地JVM标识符或lvmid。lvmid通常(但不一定)是JVM进程的操作系统进程标识符(进程号)。再没有选项的情况下,jps列出每个Java应用程序的lvmid,后面跟着应用程序的类名或jar文件名的缩写形式。类名或JAR文件名的缩写形式省略了类的包信息或JAR文件路径信息。
jps命令使用Java启动器 查找传递给主方法的类名或参数。如果目标JVM是用自定义启动器启动的,那么类或JAR文件名和主方法的参数是不可用的。再这种情况下,jps命令输出字符串Unknown作为类名或JAR文件名以及主方法的参数。
jps命令生成jvm列表可以根据授权运行该命令的主题的权限来限制。该命令只列出原则具有访问权限的jvm,由特定于操作系统的访问控制机制决定。
1.3 OPTIONS - 选项
jps 命令支持许多修改命令输出的选项。这些选项将来可能会更改或删除。
- -q : 禁止传递给主方法的类名、JAR文件名、参数的输出,只产生一个本地JVM标识符(进程号)列表;
- -m : 显式传递给主方法的参数。对于嵌入式JVM,输出可能为空;
- -l (常用) : 显式应用程序主类的完整包名或应用程序JAR文件的完整路径名;
- -v (常用) : 显式传递给JVM的参数;
- -V : 禁止传递给主方法的类名、JAR文件名和参数的输出,只产生一个本地JVM标识符(进程号)列表;
1.4 HOST IDENTIFIER - 主机标识
主机标识符或称为hostid,是指示目标系统的字符串。hostid字符串的语法对应于URI的语法:
[protocol:][[//]hostname][:port][/servername]
- protocol : 通信协议。如果省略协议并且没有指定主机名,则默认协议是特定于平台的优化本地协议。如果省略协议并指定主机名,则默认协议为 rmi;
- hostname : 指示目标主机的主机名或IP地址。如果省略hostname参数,那么目标主机就是本地主机;
- port : 用于与远程服务器通信的默认端口。如果省略了主机名参数或协议参数指定了优化的本地协议,则忽略端口参数。否则,端口参数的处理是特定于实现的。对于默认的rmi协议,port参数表示远程主机上rmiregistry的端口号。如果省略port参数,且protocol参数为rmi,则使用默认的rmiregistry端口(1099);
- servername : 这个参数的处理取决于实现。对于优化的本地协议,该字段将被忽略。对于rmi协议,该参数是一个字符串,标识远程主机上rmi远程对象的名称。更多信息情参见jstatd命令 -noption 。
1.5 OUTPUT FORMAT - 输出格式
jps 命令的输出模式如下所示:
lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]
所有输出标记都由空格分隔。当试图将参数映射到实际位置参数时,包含嵌入空白的 arg 值会导致歧义。
注意:建议不要编写脚本来解析jps输出,因为格式在未来版本中可能会改变。如果你写脚本解析JPS输出,然后期望在此工具的未来版本中修改他们。
1.6 EXAMPLES - 示例
示例1:
$ jpss
6545 Jps
5611 ASMain
第一列:Java 应用程序在操作系统上的进程号(通常情况下)
第二列:Java 应用程序主类类名
示例2:
$ jps -l
5611 com.bes.enterprise.startup.ASMain
6636 sun.tools.jps.Jps
示例3:
jps -v
2. jinfo
jinfo - 生成Java应用程序配置信息。此命令是实现性的,不受支持。
2.1 语法
jinfo [ option ] pid
jinfo [ option ] executable core
jinfo [ option ] [servier-id ] remote-hostname-or-IP
- option : 请参见 OPTIONS 部分;
- pid :打印配置信息的进程号。该进程必须是Java进程。要获得机器上运行Java进程列表,请使用 jps 命令;
- executable :从中生成核心转储的Java可执行文件;
- core :要为其打印配置信息的核心文件;
- remote-hostname-or-IP :远程调试服务器主机名或IP地址;
- server-id :一个可选的唯一ID,当多个调试服务器在同一远程主机上运行时使用。
2.2 DESCRIPTION - 描述
jinfo 命令打印指定Java进程或核心文件或远程调试服务器的Java配置信息。配置信息包括Java系统属性和Java虚拟机(JVM)命令行标志。如果指定的进程运行在64位JVM上,那么你可能需要指定-J-d64选项,例如: jinfo -J-d64 -sysprops pid。
此实用程序不受支持,并且可能在JDK的未来版本中不可用。在不存在dbgeng.dll的windows系统中,必须安装用于windows的调试工具才能使用这些工具工作。PATH环境变量应该包含目标进程使用的jvm.dll的位置,或者生成崩溃转储文件的位置。例如,设置: PATH=%JDK_HOME%\jre\bin\client;%PATH%
2.3 OPTIONS - 选项
- -flag name : 打印指定命令行标志的名称和值;
- -flag [+|-]name : 启用或禁用指定的布尔命令行标志;
- -flag name=value : 将指定的命令行标志设置为指定的值;
- -flags : 打印传递给JVM的命令行标志;
- -sysprops : 以键值对的形式打印Java系统属性;
- -h : 打印帮助信息;
- -help: 打印帮助信息;
2.4 EXAMPLES - 示例
示例1:
$ jps
8473 Jps
5611
ASMain
$ jinfo 5611
3. jstat
jstat - 监视Java虚拟机(JVM)统计信息。此命令是实验性的,不受支持。
3.1 语法
jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]
- generalOption : 一个通用的命令行选项 -help 或 -options。参见 General Options 部分;
- outputOptions : 由单个statOption和-t、-h和-J选项组成的一个或多个输出选项。参见 Output Options;
- vmid : 虚拟机标识符(进程号),它是指示目标JVM的字符串。一般语法如下:
- [protocol:][//]lvmid[@hostname[:port]/servername]
- vmid 自妇产的语法对应于URI的语法。vmid字符串可以是表示本地JVM的简单整数,也可以是指定通信协议、端口号和其他特定于实现的值的更复杂结构。请参见虚拟机标识符;
- interval [s|ms] : 采样间隔,单位为秒(s)或毫秒(ms)。默认单位为毫秒。必须是正整数。指定后,jstat命令在每个间隔产生输出;
- count : 要显式的采样数量。默认值为无穷大,这将导致jstat命令显示统计信息,直到JVM终止或jstat命令终止。该值必须为正整数。
3.2 描述
jstat 命令用来显示测试 Java HotSpot 虚拟机的性能统计信息。目标JVM由其虚拟机标识符或vmid选项标识。
- 虚拟机标识符:vmid字符串的语法对应于URI的语法:
- [protocol:][//]lvmid[@hostname[:port]/servername]
- protocol : 通信协议。如果省略protocol值且未指定主机名,则默认协议是特定于平台的优化本地协议。如果省略协议值,并指定主机名,则默认协议为 rmi;
- lvmid : 目标JVM的本地虚拟机标识符。lvmid是一个特定于平台的值,用于唯一表示系统上的JVM。lvmid是虚拟机标识符的唯一必须组件。lvmid通常是(但不一定是)目标JVM进程的操作系统进程标识符。可以使用jsp命令确定lvmid。此外,还可以在Solaris、Linux和OS X平台上使用ps命令确定lvmid,再windows上使用windows任务管理器确定lvmid;
- hostname : 指定目标主机的主机名或IP地址。如果省略hostname值,则目标主机为本地主机;
- port : 用于与远程服务器通信的默认端口。如果省略了主机名值或协议值指定了优化的本地协议,则忽略端口值。否则,端口参数的处理是特定于实现的。对于默认的rmi协议,port值表示远程主机上rmiregistry的端口号。如果省略port值,protocol值为rmi,则使用默认的rmiregistry端口号(1099);
- servername :servername 参数的处理取决于实现。对于优化后的本地协议,该字段将被忽略。对于rmi协议,它表示远程主机上rmi远程对象的名称。
3.3 选项
jstat 命令支持两种类型的选项,通用选项和输出选项。常规选项使jstat命令显示简单的用法和版本信息。输出选项决定统计输出的内容和格式。
所有选项及其功能都可能在未来的版本中更改或删除。
- 通用选项:如果指定一个通用选项,则不能指定任何其他选项或参数。
- -help :显式帮助信息;
- -options :显式静态选项列表。参见输出选项。
- 输出选项: 如果你没有指定通用选项,那么你可以指定输出选项。输出选项决定了jstat命令输出的内容和格式,由单个statOption加上任何其他输出选项(-h、-t、-J)组成。statOption必须先出现。输出格式为表,列之间用空格分隔。带有标题的标题行描述列。使用 -h 选项可以设置显示标头的频率。列标题名称在不同选项之间是一致的。通常,如果两个选项提供同名的列,则这两个列的数据源是相同的。使用-t选项显示时间戳列,将Timestamp标记为输出的第一列。Timestatmp列包含自目标JVM启动以来经过的时间(以秒为单位)。时间戳的分辨率取决于各种因素,并且由于重载系统上延迟的线程调度而发生变化。使用interval和count参数分别确定jstat命令显示其输出的频率和次数。
注意 :不要编写脚本来解析jstat命令的输出,因为格式在未来的版本中可能会改变。如果你编写了解析jstat命令输出的脚本,那么你可以在此工具的未来版本中修改它们。
- -statOption :确定jstat命令显示的统计信息。下面列出了可用的选项。使用 -options general 选项显示特定平台安装的选项列表。参见统计选项和输出。
class :显式类加载器行为的统计信息。
compiler :显式Java HotSpot VM即时编译器的行为统计信息。
gc :显式垃圾收集堆行为的统计信息。
gccapacity :显式各分代及其对应空间的容量统计信息。
gccause :显式关于垃圾收集统计信息的摘要(与 -gcutil相同),包括最后一次和当前(如果适用)垃圾收集事件的原因。
gcnew :显式年轻代的行为统计信息。
gcnewcapacity :显式关于新生代的大小及其对应空间的统计信息。
gcold :显式关于老年代行为和元空间统计信息的统计信息。
gcoldcapacity :显式关于老年代大小的统计信息。
gcmetacapacity :显式元空间大小的统计信息。
gcutil :显式关于垃圾收集统计信息的摘要。
printcompilation :显式Java HotSpot虚拟机编译方法统计信息。
- -h n :每 n 个样本(输出行)显式一个列标题,其中 n 为正整数。默认值为 0,将列标头显式在数据的第一行。
- -t :将时间戳列显示为输出的第一列。时间戳是目标JVM开始时间之后的时间。
- -JjavaOption :将 javaOption 传递给Java应用程序启动器。例如,-J-Xms48m将启动内存设置为48mb。
- **Stat Options and Output **:下面的信息总结了 jstat 命令为每个 statOption输出的列。
- -class option :类加载器统计信息。
Loaded :已加载的类数量
Bytes :加载的 kb 数
Unloaded :卸载的类数量
Bytes :卸载的Kbytes数
Time :执行类加载和卸载操作所花费的时间
- -compiler option :Java HotSpot VM 即时编译器统计信息。
Compiled :已执行的编译任务数
Failed :编译任务失败的个数
Invalid :无效的编译任务数
Time :用于执行编译任务的时间
FailedType :上次编译失败的编译类型
FailedMethod :上次失败编译的类名和方法
-
gc option :垃圾收集的堆统计信息。
S0C :当前幸存者空间 0 容量(kB)
S1C :当前幸存者空间 1 容量(kB)
S0U :幸存者空间 0 利用率(kB)
S1U :幸存者空间 1 利用率(kB)
EC :当前伊甸园空间容量(kB)
EU :伊甸园空间利用率(kB)
OC :当前老年代容量(kB)
OU :老年代空间利用率(kB)
MC :元空间容量(kB)
MU :元空间利用率(kB)
CCSC :压缩类空间容量(kB)
CCSU :使用的压缩类空间(kB)
YGC :年轻代垃圾收集事件的数量
YGCT :年轻代垃圾收集时间
FGC :FullGC事件数
FGCT :FullGC垃圾收集时间
GCT :总垃圾收集时间 -
gccapacity option :内存分代和空间容量。
NGCMIN :年轻代最小容量(kB)
NGCMX:年轻代最大容量(kB)
NGC :当前年轻代容量(kB)
S0C :当前幸存者空间0容量(kB)
S1C :当前幸存者空间1容量(kB)
EC :当前伊甸园空间容量(kB)
OGCMIN : 最小老年代容量(kB)
OGCMX :最大老年代容量(kB)
OGC :当前老年代容量(kB)
OC :当前老年代空间容量(kB)
MCMN :最小元空间容量(kB)
MCMX :最大元空间容量(kB)
MC :元空间容量(kB)
CCSMN :压缩类空间最小容量(kB)
CCSMX :压缩类空间最大容量(kB)
CCSC :压缩类空间容量(kB)
YGC :年轻代GC事件的数量
FGC :FullGC事件数 -
-gccause option :此选项实现与 -gcutil 选项相同的垃圾收集统计信息摘要,但包括上一个垃圾收集事件和当前垃圾收集事件(如果适用)的原因。除了为 -gcutil 列出的列之外,该选项还添加了以下列。
LGCC :上次垃圾收集的原因
GCC :当前垃圾收集的原因 -
-gcnew option :年轻代的统计数据。
S0C :当前幸存者空间0容量(kB)
S1C :当前幸存者空间1容量(kB)
S0U :幸存者空间0利用率(kB)
S1U :幸存者空间1利用率(kB)
TT :Tenuring threshold
MTT :Maximum tenuring threshold
DSS :期望幸存者空间大小(kB)
EC :当前伊甸园空间容量(kB)
EU :伊甸园空间利用率(kB)
YGC :年轻代GC事件的数量
YGCT :年轻代垃圾收集时间 -
gcnewcapacity option :年轻代空间大小统计
NGCMN :最小年轻代容量(kB)
NGCMX :最大年轻代容量(kB)
NGC :当前的年轻代容量(kB)
S0CMX :最大幸存者空间0容量(kB)
S1C :当前幸存者空间1容量(kB)
ECMX :最大伊甸园空间容量(kB)
EC :当前伊甸园空间容量(kB)
YGC :年轻代 GC 事件数量
FGC :FullGC 事件数量 -
gcold option :老年代和元空间行为统计。
MC :元空间容量(kB)
MU :元空间利用率(kB)
CCSC :压缩类空间容量(kB)
CCSU :使用的压缩类空间(kB)
OC :当前老年代空间容量(kB)
OU :老年代利用率(kB)
YGC :年轻代GC事件的数量
FGC :FullGC事件数量
FGCT :FullGC垃圾收集时间
GCT :总垃圾收集时间 -
gcoldcapacity option :老年代大小统计。
OGCMN :最小老年代容量(kB)
OGCMX :最大老年代容量(kB)
OGC :当前老年代容量(kB)
OC :当前老年代空间容量(kB)
YGC :年轻代GC事件的数量
FGC :FullGC事件数
FGCT :FullGC垃圾收集时间
GCT :总垃圾收集时间 -
gcmetacapacity option :元空间大小统计信息。
MCMN :最小元空间容量(kB)
MCMX :最大元空间容量(kB)
MC :元空间容量(kB)
CCSMN :压缩类空间最小容量(kB)
CCSMX :压缩类空间最大容量(kB)
YGC :年轻代GC事件的数量
FGC :FullGC事件数量
FGCT :FullGC垃圾收集时间
GCT :总垃圾收集时间 -
gcutil option :垃圾收集统计信息的摘要。
S0 :幸存者空间0利用率占空间当前容量的百分比
S1 :幸存者空间1的利用率占空间当前容量的百分比
E :伊甸园空间利用率占空间当前容量的百分比
O :老年代利用率占空间当前容量的百分比
M :元空间利用率占空间当前容量的百分比
CCS :压缩类空间利用率的百分比
YGC :年轻代GC事件的数量
YGCT :年轻代垃圾收集时间
FGC :FullGC事件数
FTCT :FullGC垃圾收集时间
GCT :总垃圾收集时间 -
-printcompilation option :Java HotSpot VM 编译方法统计。
Compiled :最近编译的方法执行的编译任务数
Size :最近编译的方法的字节码的字节数
Type :最近编译的方法的编译类型
Method :类名和方法名,用于标识最近编译的方法。类名使用斜杠(/)而不是点(.)作为名称空间分隔符。方法名称是指定类中的方法。这两个字段的格式与HotSpot -XX:+PrintCompilation选项一致。
3.4 示例
示例1:
$ jps
5611 ASMain
14494 Jps
$ jstat -gccause -h 10 5611 1s
4. jstack
jstack - 打印Java进程、core file 或远程调试服务器的Java线程堆栈跟踪。此命令是实验性的,不收支持。
4.1 语法
jstack [ options ] pid
jstack [ options ] executable core
jstack [ options ] [ server-id@ ] remote-hostname-or-IP
options : 参见 Options 部分;
pid :为其打印堆栈跟踪的进程ID。该进程必须是Java进程。要获得机器上运行的Java进程列表,请使用jps命令;
executable :生成核心转储的Java可执行文件;
core :要为其打印堆栈跟踪的核心文件;
remote-hostname-or-IP :远程调试服务器主机名或IP地址;
server-id :一个可选的唯一ID,当多个调试服务器在同一远程主机上运行时使用。
4.2 描述
jstack 命令打印指定Java进程、corefile或远程调试服务器的Java线程的Java堆栈跟踪。对于每个Java帧,打印完整的雷鸣、方法名字、字节码索引(BCI)和行号(如果可用的话)。使用 -m 选项,jstack命令使用程序计数器(PC)打印所有线程的Java和本机帧。对于每个本机帧,在可用时打印最接近PC的本机符号。C++ 中被破坏的名称是不需要的。要要求C名称,此命令的输出可以通过管道传输到C++ filt。当指定的进程运行在64位Java虚拟机上时,你可能需要指定 -J-d64选项,例如:jstack -J-d64 -m pid。
注意 :此程序不受支持,在JDK的未来版本中可能无法使用。在不存在dbgeng.dll文件的Windows系统中,必须安装用于Windows的调试工具,以便这些工具能够工作。PATH环境变量需要包含目标进程使用的jvm.dll的位置,或者生成崩溃转储文件的位置。例如:
set PATH=\jre\bin\client;%PATH%
4.3 选项
- -F :当 jstack [-l] pid 没有响应时强制转储堆栈
- -l :打印关于锁的附加信息,例如拥有的 java.util.concurrent 可拥有同步器的列表。参见http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.html 类描述
- -m :打印包含Java和原生C/C++帧的混合模式堆栈跟踪
- -h :打印帮助信息
- -help :打印帮助信息
注意:在混合模式堆栈跟踪中,-m 选项不能用于远程调试服务器。
4.4 示例
示例1:
$ jps
4864 mqpaas-pproxy-bootstrap.jar
45824 Jps
4977 mqpaas-cproxy-bootstrap.jar
6872 BrokerStartup
3452 mqpaas-portal-bootstrap.jar
4652 NamesrvStartup
$ jstack -l 4864 > 4864.txt
5. jmap
jmap - 打印进程、corefile、或远程调试服务器的共享对象内存映射或堆内存细节。此命令是实验性的,不受支持。
5.1 语法
jmap [ options ] pid
jmap [ options ] executable core
jmap [ options ] [ pid ] server-id@ ] remote-hostname-or-IP
- options : 参见 Options 部分
- pid :要为其打印内存映射的进程ID。该进程必须是Java进程。要获得机器上运行的Java进程列表,请使用 jps 命令。
- executable :从中生成 core dump 转储的 Java 可执行文件
- core - 要为其打印内存映射的核心文件
- remote-hostname-or-IP : 远程调试服务器主机名或IP地址
- server-id :一个可选的唯一ID,当多个调试服务器在同一远程主机上运行时使用
5.2 描述
jmap 命令打印指定进程、corefile 或远程调试服务器的共享对象内存映射或堆内存详细信息。如果指定的进程运行在64位Java虚拟机(JVM)上,则可能需要指定 -J-d64 选项,例如:
jmap -J-d64 -heap pid
注意:此程序不受支持,在JDK的未来版本中可能无法使用。在不存在 dbgeng.dll 文件的Windows系统上,必须安装用于Windows的调试工具才能使这些工具工作。PATH环境变量应该包含目标进程使用的 jvm.dll文件的位置或者产生崩溃转储文件的位置,例如:
set PATH=%JDK_HOME%\jre\bin\client;%PATH%
5.3 选项
- 无选项:当不适用任何选项时,jmap 命令打印共享对象映射。对于目标JVM中加载的每个共享对象,将打印起始地址、映射大小和共享对象文件的完整路径。此行为类似于 Oracle Solaris pmap 程序。
- -dump:[live,] format=b, file=filename :将 Java 堆以 hprof 二进制格式转储到文件。live 子选项是可选的,但是当指定时,只有堆中的活动对象被转储。要浏览堆转储,可以用时 jhat 命令读取生成的文件
- -finalizerinfo :打印关于等待完成的对象的信息
- -heap :打印所使用的垃圾收集的堆摘要、头配置和按代计算的堆使用情况。此外,还会打印被存储字符串的数量和大小
- -histo[:live] :打印堆得直方图。对于每个Java类,打印对象的数量、内存大小(以字节为单位)和完全限定的类名。JVM内部类名以星号(*)前缀打印。如果指定了live子选项,则只统计活动对象。
- -clstats :打印Java堆得类加载器统计信息。对于每个类加载器,打印它的名称、活动状态、地址、父类加载器以及它已加载的类的数量和大小
- -F :强制。当 pid 没有响应时,将此选项与jmap -dump或 jmap -histo 选项一起使用。在此模式下不支持 live 子选项
- -h :打印帮助信息
- -help :打印帮助信息
- -Jflag :将标志传递给运行jmap命令的Java虚拟机
5.4 示例
示例1:
$ jmap -dump:live,format=b,file=4864.hprof 4864
6. jhat
jhat - 分析Java堆。此命令是实验性的,不受支持。
6.1 语法
jhat [ options ] heap-dump-file
options : 参见 Options 部分
heap-dump-file : 要浏览的Java二进制堆转储文件。对于包含多个堆转储的转储文件,你可以通过在文件名后面追加 # 来指定文件中的哪个转储,例如 myfile.hprof#3。
6.2 描述
jhat 命令解析 Java 堆转储文件并启动 web 服务器。jhat 命令允许你使用自己喜欢的web浏览器浏览堆转储。jhat命令支持预先设计的查询,例如显式已知类 MyClass 的所有实例和对象查询语言(Object Query Language, OQL)。OQL 类似于 SQL,知识用于查询堆转储。OQL的帮助可以从jhat命令显示的OQL帮助页面获得。使用默认端口,OQL 帮助可以在 https://localhost:7000/oqlhelp 上获得。
有几种方法可以生成Java堆转储:
- 使用 jmap -dump 选项在运行时获取堆转储
- 使用jconsole选项在运行时通过HotSpotDiagnosticMXBean获得堆转储。请参阅jconsole和
- 当抛出 OutOfMemoryError 时,通过指定 -XX:+HeapDumpOnOutOfMemoryError Java 虚拟机(JVM)选项生成堆转储
- 使用 hprof 命令。请参阅 http://docs.oracle.com/javase/8/docs/technotes/samples/hprof.html 上的HPROF:A Heap/CPU Profiling 。
6.3 选项
- -stack false|true : 关闭跟踪对象分配调用堆栈。如果在堆转储中没有分配站点信息,则必须将此标志设置为false。默认为 true
- refs false|true : 关闭对对象引用的跟踪。默认为true。默认情况下,返回指针(指向指定对象的对象,如引用或传入引用)将为堆中的所有对象计算
- -port port-number :设置jhat HTTP服务器的端口。缺省值为 7000
- -exclude exclude-file : 指定一个文件,该文件列出应从可达对象查询中排除的数据成员。例如,如果文件列出 java.lang.String.value。那么,当计算从特定对象 o 可达的对象列表时,不考虑包含 java.lang.String.value 字段的引用路径
- -baseline exclude-file :指定基线堆转储。两个堆转储中具有相同对象ID的对象被标记为非新对象。其它对象被标记为new。这对于比较两个不同的堆转储非常有用
- -debug int :设置此工具的调试级别。0 标识没有调试输出。为更详细的模式设置更高的值
- -version :报告版本号并退出
- -h :打印帮助信息并退出
- -help :打印帮助信息并退出
- -Jflag :将标志传递给正在运行jhat命令的Java虚拟机。例如,-J-Xmx512m 使用最大堆大小为 512 MB
6.4 示例
示例1:
$ jhat 5611.bin