JDK 自带监控和故障处理工具

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

image.png
第一列:Java 应用程序在操作系统上的进程号(通常情况下)
第二列:Java 应用程序主类类名

示例2

$ jps -l
5611 com.bes.enterprise.startup.ASMain
6636 sun.tools.jps.Jps

image.png

示例3:

jps -v

image.png

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

image.png

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

image.png

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 选项

注意:在混合模式堆栈跟踪中,-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

image.png

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

image.png

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

image.png
image.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值