1、介绍

Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:

- 类的加载及卸载情况

- 查看新生代、老生代及持久代的容量及使用情况

- 查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间

- 查看新生代中Eden区及Survior区中容量及分配情况等

jstat工具特别强大,它有众多的可选项,通过提供多种不同的监控维度,使我们可以从不同的维度来了解到当前JVM堆的使用情况。详细查看堆内各个部分的使用量,使用的时候必须加上待统计的Java进程号,可选的不同维度参数以及可选的统计频率参数。

它主要是用来显示GC及PermGen相关的信息,如果对GC不怎么了解,先看这篇文章:非常详细GC学习笔记_冯立彬的博客-CSDN博客,否则其中即使你会使用jstat这个命令,你也看不懂它的输出。

2、语法

jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]

    generalOption - 单个的常用的命令行选项,如-help, -options, 或 -version。

    outputOptions -一个或多个输出选项,由单个的statOption选项组成,可以和-t, -h, and -J等选项配合使用。

statOption

根据jstat统计的维度不同,可以使用如下表中的选项进行不同维度的统计,不同的操作系统支持的选项可能会不一样,可以通过-options选项,查看不同操作系统所支持选项,如:

Option Displays...
class 用于查看类加载情况的统计
compiler 用于查看HotSpot中即时编译器编译情况的统计
gc 用于查看JVM中堆的垃圾收集情况的统计
gccapacity 用于查看新生代、老生代及持久代的存储容量情况
gccause 用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因。
gcnew 用于查看新生代垃圾收集的情况
gcnewcapacity 用于查看新生代的存储容量情况
gcold 用于查看老生代及持久代发生GC的情况
gcoldcapacity 用于查看老生代的容量
gcpermcapacity 用于查看持久代的容量
gcutil 用于查看新生代、老生代及持代垃圾收集的情况
printcompilation HotSpot编译方法的统计

    -h n

用于指定每隔几行就输出列头,如果不指定,默认是只在第一行出现列头。

    -JjavaOption

用于将给定的javaOption传给java应用程序加载器,例如,“-J-Xms48m”将把启动内存设置为48M。如果想查看可以传递哪些选项到应用程序加载器中,可以相看如下的文档:

Linux and Solaris:java - the Java application launcher

Windows: java - the Java application launcher

    -t n

用于在输出内容的第一列显示时间戳,这个时间戳代表的时JVM开始启动到现在的时间(注:在IBM JDK5中是没有这个选项的)。

    vmid  - VM的进程号,即当前运行的java进程号。

还有两个关于显示频率的选项:

    interval–间隔时间,单位可以是秒或者毫秒,通过指定s或ms确定,默认单位为毫秒。

    count-打印次数,如果缺省则打印无数次。

3、不同的统计维度(statOption)及输出说明

-class

类加载情况的统计
列名 说明
Loaded 加载了的类的数量
Bytes 加载了的类的大小,单为Kb
Unloaded 卸载了的类的数量
Bytes 卸载了的类的大小,单为Kb
Time 花在类的加载及卸载的时间

-compiler

HotSpot中即时编译器编译情况的统计
列名 说明
Compiled 编译任务执行的次数
Failed 编译任务执行失败的次数
Invalid 编译任务非法执行的次数
Time 执行编译花费的时间
FailedType 最后一次编译失败的编译类型
FailedMethod 最后一次编译失败的类名及方法名

-gc

JVM中堆的垃圾收集情况的统计
列名 说明
S0C 新生代中Survivor space中S0当前容量的大小(KB)
S1C 新生代中Survivor space中S1当前容量的大小(KB)
S0U 新生代中Survivor space中S0容量使用的大小(KB)
S1U 新生代中Survivor space中S1容量使用的大小(KB)
EC Eden space当前容量的大小(KB)
EU Eden space容量使用的大小(KB)
OC Old space当前容量的大小(KB)
OU Old space使用容量的大小(KB)
PC Permanent space当前容量的大小(KB)
PU Permanent space使用容量的大小(KB)
YGC 从应用程序启动到采样时发生 Young GC 的次数
YGCT 从应用程序启动到采样时 Young GC 所用的时间(秒)
FGC 从应用程序启动到采样时发生 Full GC 的次数
FGCT 从应用程序启动到采样时 Full GC 所用的时间(秒)
GCT T从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

-gccapacity

新生代、老生代及持久代的存储容量情况
列名 说明
NGCMN 新生代的最小容量大小(KB)
NGCMX 新生代的最大容量大小(KB)
NGC 当前新生代的容量大小(KB)
S0C 当前新生代中survivor space 0的容量大小(KB)
S1C 当前新生代中survivor space 1的容量大小(KB)
EC Eden space当前容量的大小(KB)
OGCMN 老生代的最小容量大小(KB)
OGCMX 老生代的最大容量大小(KB)
OGC 当前老生代的容量大小(KB)
OC 当前老生代的空间容量大小(KB)
PGCMN 持久代的最小容量大小(KB)
PGCMX 持久代的最大容量大小(KB)
PGC 当前持久代的容量大小(KB)
PC 当前持久代的空间容量大小(KB)
YGC 从应用程序启动到采样时发生 Young GC 的次数
FGC 从应用程序启动到采样时发生 Full GC 的次数

-gccause

这个选项用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因,它比-gcutil会多出最后一次垃圾收集原因以及当前正在发生的垃圾收集的原因。

用于查看垃圾收集的统计情况,包括最近发生垃圾的原因
列名 说明
LGCC 最后一次垃圾收集的原因,可能为“unknown GCCause”、“System.gc()”等
GCC 当前垃圾收集的原因

-gcnew

新生代垃圾收集的情况
列名 说明
S0C 当前新生代中survivor space 0的容量大小(KB)
S1C 当前新生代中survivor space 1的容量大小(KB)
S0U S0已经使用的大小(KB)
S1U S1已经使用的大小(KB)
TT Tenuring threshold,要了解这个参数,我们需要了解一点Java内存对象的结构,在Sun JVM中,(除了数组之外的)对象都有两个机器字(words)的头部。第一个字中包含这个对象的标示哈希码以及其他一些类似锁状态和等标识信息,第二个字中包含一个指向对象的类的引用,其中第二个字节就会被垃圾收集算法使用到。
在新生代中做垃圾收集的时候,每次复制一个对象后,将增加这个对象的收集计数,当一个对象在新生代中被复制了一定次数后,该算法即判定该对象是长周期的对象,把他移动到老生代,这个阈值叫着tenuring threshold。这个阈值用于表示某个/些在执行批定次数youngGC后还活着的对象,即使此时新生的的Survior没有满,也同样被认为是长周期对象,将会被移到老生代中。
MTT Maximum tenuring threshold,用于表示TT的最大值。
DSS Desired survivor size (KB).可以参与这里:http://blog.csdn.net/yangjun2/article/details/6542357
EC Eden space当前容量的大小(KB)
EU Eden space已经使用的大小(KB)
YGC 从应用程序启动到采样时发生 Young GC 的次数
YGCT 从应用程序启动到采样时 Young GC 所用的时间(单位秒)

-gcnewcapacity

新生代的存储容量情况
列名 说明
NGCMN           新生代的最小容量大小(KB)
NGCMX     新生代的最大容量大小(KB)
NGC     当前新生代的容量大小(KB)
S0CMX 新生代中SO的最大容量大小(KB)
S0C 当前新生代中SO的容量大小(KB)
S1CMX 新生代中S1的最大容量大小(KB)
S1C 当前新生代中S1的容量大小(KB)
ECMX 新生代中Eden的最大容量大小(KB)
EC 当前新生代中Eden的容量大小(KB)
YGC 从应用程序启动到采样时发生 Young GC 的次数
FGC 从应用程序启动到采样时发生 Full GC 的次数

-gcold

老生代及持久代发生GC的情况
列名 说明
PC 当前持久代容量的大小(KB)
PU 持久代使用容量的大小(KB)
OC 当前老年代容量的大小(KB)
OU 老年代使用容量的大小(KB)
YGC 从应用程序启动到采样时发生 Young GC 的次数
FGC 从应用程序启动到采样时发生 Full GC 的次数
FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

-gcoldcapacity

老生代的存储容量情况
列名 说明
OGCMN 老生代的最小容量大小(KB)
OGCMX 老生代的最大容量大小(KB)
OGC 当前老生代的容量大小(KB)
OC 当前新生代的空间容量大小(KB)
YGC 从应用程序启动到采样时发生 Young GC 的次数
FGC 从应用程序启动到采样时发生 Full GC 的次数
FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

-gcpermcapacity

从应用程序启动到采样时发生 Full GC 的次数

持久代的存储容量情况
列名 说明
PGCMN 持久代的最小容量大小(KB)
PGCMX 持久代的最大容量大小(KB)
PGC 当前持久代的容量大小(KB)
PC 当前持久代的空间容量大小(KB)
YGC 从应用程序启动到采样时发生 Young GC 的次数
FGC
FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

-gcutil

新生代、老生代及元空间垃圾收集的情况
列名 说明
S0 Heap上的 Survivor space 0 区已使用空间的百分比
S1 Heap上的 Survivor space 1 区已使用空间的百分比
E Heap上的 Eden space 区已使用空间的百分比
O Heap上的 Old space 区已使用空间的百分比
P Perm space 区已使用空间的百分比
YGC 从应用程序启动到采样时发生 Young GC 的次数
YGCT 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC 从应用程序启动到采样时发生 Full GC 的次数
FGCT 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

-printcompilation

HotSpot编译方法的统计
列名 说明
Compiled 编译任务执行的次数
Size 方法的字节码所占的字节数
Type 编译类型
Method 指定确定被编译方法的类名及方法名,类名中使名“/”而不是“.”做为命名分隔符,方法名是被指定的类中的方法,这两个字段的格式是由HotSpot中的“-XX:+PrintComplation”选项确定的。

4、使用示例

GC频率监控

类加载统计:

/ $ jstat -class 9
Loaded  Bytes  Unloaded  Bytes     Time   15046 27276.6        0     0.0      17.62

Loaded:加载class的数量
Bytes:所占用空间大小
Unloaded:未加载数量
Bytes:未加载占用空间
Time:时间

编译统计

/ $ jstat -compiler 9
Compiled Failed Invalid   Time   FailedType FailedMethod30239      1       0   206.89          1 sun/misc/URLClassPath getLoader
/ $ 

Compiled:编译数量。
Failed:失败数量
Invalid:不可用数量
Time:时间
FailedType:失败类型
FailedMethod:失败的方法

垃圾回收统计

/ $ jstat -gc 9 3000S0C    S1C    S0U    S1U      EC       EU        OC         OU         MC     MU      CCSC    CCSU    YGC      YGCT    FGC    FGCT     GCT
12800.0 12800.0  0.0   11851.2 760832.0 314974.7 1572864.0   534338.9  89108.0 85979.5 10556.0 9943.9   4327   76.753   3      0.513   77.266
12800.0 12800.0  0.0   11851.2 760832.0 317333.1 1572864.0   534338.9  89108.0 85979.5 10556.0 9943.9   4327   76.753   3      0.513   77.266
12800.0 12800.0  0.0   11851.2 760832.0 319062.1 1572864.0   534338.9  89108.0 85979.5 10556.0 9943.9   4327   76.753   3      0.513   77.266
12800.0 12800.0  0.0   11851.2 760832.0 321439.5 1572864.0   534338.9  89108.0 85979.5 10556.0 9943.9   4327   76.753   3      0.513   77.266

S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
OC:老年代大小
OU:老年代使用大小
MC:元数据区大小
MU:元数据区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

堆内存统计

^C/ $ jstat -gccapacity 9NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC          MCMN  MCMX      MC        CCSMN    CCSMX     CCSC      YGC    FGC
786432.0 786432.0 786432.0 12800.0 12800.0 760832.0  1572864.0  1572864.0  1572864.0  1572864.0      0.0 1128448.0  89108.0      0.0 1048576.0  10556.0   4327     3
/ $ 

NGCMN:新生代最小容量

NGCMX:新生代最大容量

NGC:当前新生代容量
S0C:第一个幸存区大小
S1C:第二个幸存区的大小
EC:伊甸园区的大小
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:当前老年代大小
MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代gc次数
FGC:老年代GC次数

新生代垃圾回收统计

/ $ jstat -gcnew 9S0C    S1C        S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
12800.0 12800.0    0.0 11851.2 15  15 12800.0 760832.0 519602.9   4327   76.753
/ $

S0C:第一个幸存区大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
TT:对象在新生代存活的次数
MTT:对象在新生代存活的最大次数
DSS:期望的幸存区大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间

新生代内存统计

/ $ jstat -gcnewcapacity 9NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC 786432.0   786432.0   786432.0 262144.0  12800.0 262144.0  12800.0   785408.0   760832.0  4327     3
/ $ 

NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0CMX:最大幸存1区大小
S0C:当前幸存1区大小
S1CMX:最大幸存2区大小
S1C:当前幸存2区大小
ECMX:最大伊甸园区大小
EC:当前伊甸园区大小
YGC:年轻代垃圾回收次数
FGC:老年代回收次数

老年代垃圾回收统计

/ $ jstat -gcold 9MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT   89108.0  85979.5  10556.0   9943.9   1572864.0    534338.9   4327     3    0.513   77.266
/ $ 

MC:元数据区大小
MU:元数据区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
OC:老年代大小
OU:老年代使用大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

---------------------------------------------------------------------------------------------------------------------

jstat里的metaspace字段

我们看GC是否异常,除了通过GC日志来做分析之外,我们还可以通过jstat这样的工具展示的数据来分析,前面我公众号里有篇文章介绍了jstat这块的实现,有兴趣的可以到我的公众号你假笨里去翻阅下jstat的这篇文章。

我们通过jstat可以看到metaspace相关的这么一些指标,分别是MCCSMCMUCCSCCCSUMCMNMCMXCCSMNCCSMX

它们的定义如下:

column {header "^M^"    /* Metaspace - Percent Used */data (1-((sun.gc.metaspace.capacity - sun.gc.metaspace.used)/sun.gc.metaspace.capacity)) * 100align rightwidth 6scale rawformat "0.00"}column {header "^CCS^"    /* Compressed Class Space - Percent Used */data (1-((sun.gc.compressedclassspace.capacity - sun.gc.compressedclassspace.used)/sun.gc.compressedclassspace.capacity)) * 100align rightwidth 6scale rawformat "0.00"}column {header "^MC^"    /* Metaspace Capacity - Current */data sun.gc.metaspace.capacityalign centerwidth 6scale Kformat "0.0"}column {header "^MU^"    /* Metaspae Used */data sun.gc.metaspace.usedalign centerwidth 6scale Kformat "0.0"}column {header "^CCSC^"    /* Compressed Class Space Capacity - Current */data sun.gc.compressedclassspace.capacitywidth 8align rightscale Kformat "0.0"}column {header "^CCSU^"    /* Compressed Class Space Used */data sun.gc.compressedclassspace.usedwidth 8align rightscale Kformat "0.0"}column {header "^MCMN^"    /* Metaspace Capacity - Minimum */data sun.gc.metaspace.minCapacityscale Kalign rightwidth 8format "0.0"}column {header "^MCMX^"    /* Metaspace Capacity - Maximum */data sun.gc.metaspace.maxCapacityscale Kalign rightwidth 8format "0.0"}column {header "^CCSMN^"    /* Compressed Class Space Capacity - Minimum */data sun.gc.compressedclassspace.minCapacityscale Kalign rightwidth 8format "0.0"}column {header "^CCSMX^"    /* Compressed Class Space Capacity - Maximum */data sun.gc.compressedclassspace.maxCapacityscale Kalign rightwidth 8format "0.0"}

我这里对这些字段分类介绍下

MC & MU & CCSC & CCSU

  • MC表示Klass Metaspace以及NoKlass Metaspace两者总共committed的内存大小,单位是KB,虽然从上面的定义里我们看到了是capacity,但是实质上计算的时候并不是capacity,而是committed,这个是要注意的

  • MU这个无可厚非,说的就是Klass Metaspace以及NoKlass Metaspace两者已经使用了的内存大小

  • CCSC表示的是Klass Metaspace的已经被commit的内存大小,单位也是KB

  • CCSU表示Klass Metaspace的已经被使用的内存大小

M & CCS

  • M表示的是Klass Metaspace以及NoKlass Metaspace两者总共的使用率,其实可以根据上面的四个指标算出来,即(CCSU+MU)/(CCSC+MC)

  • CCS表示的是Klass Metaspace的使用率,也就是CCSU/CCSC算出来的

PS:所以我们有时候看到M的值达到了90%以上,其实这个并不一定说明metaspace用了很多了,因为内存是慢慢commit的,所以我们的分母是慢慢变大的,不过当我们committed到一定量的时候就不会再增长了

MCMN & MCMX & CCSMN & CCSMX

  • MCMN和CCSMN这两个值大家可以忽略,一直都是0

  • MCMX表示Klass Metaspace以及NoKlass Metaspace两者总共的reserved的内存大小,比如默认情况下Klass Metaspace是通过CompressedClassSpaceSize这个参数来reserved 1G的内存,NoKlass Metaspace默认reserved的内存大小是2* InitialBootClassLoaderMetaspaceSize

  • CCSMX表示Klass Metaspace reserved的内存大小

综上所述,其实看metaspace最主要的还是看MCMUCCSCCCSU这几个具体的大小来判断metaspace到底用了多少更靠谱

---------------------------------------------------------------------------------------------------------------------

老年代内存统计

/ $ jstat -gcoldcapacity 9OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT   1572864.0   1572864.0   1572864.0   1572864.0  4327     3    0.513   77.266
/ $ 

OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:老年代大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

元数据空间统计

/ $ jstat -gcmetacapacity 9MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT   0.0  1128448.0    89108.0        0.0  1048576.0    10556.0  4327     3    0.513   77.266
/ $

MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

总结垃圾回收统计

/ $ jstat -gcutil 9S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   40.55   0.00  17.43  33.97  96.49  94.20   4328   76.766     3    0.513   77.279
/ $ 

S0:幸存1区当前使用比例
S1:幸存2区当前使用比例
E:伊甸园区使用比例
O:老年代使用比例
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

说明:

FGC数量大时,有内存泄漏的问题;

FGCT执行时间长,会导致系统的响应时间较长,若JVM的内存设置较大,那么执行一次FGC的时间可能会更长。

FGC对服务器性能影响:发生FGC时,服务响应时间会增加,网络请求和吞吐量会下降。

所以java内存泄漏对系统性能的影响是不可忽视的。

JVM编译方法统计

/ $ jstat -printcompilation 9
Compiled  Size  Type Method30243    154    1 com/fasterxml/jackson/databind/util/ClassUtil findSuperTypes
/ $ 

Compiled:最近编译方法的数量
Size:最近编译方法的字节码数量
Type:最近编译方法的编译类型。
Method:方法名标识。

GCT=YGCT+FGCT

总的垃圾回收时间=年轻代垃圾回收时间+老年代垃圾回收时间

上面的红色框中发生一次FGC,可以验证。

jstat -gccause  gc原因

/ $ jstat -gccause 11S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC                 57.50   0.00  57.44  76.65  89.75  84.73   4132   49.547     1    0.516   50.064 Allocation Failure   No GC
/ $

JDK命令三、jstat命令(Java Virtual Machine Statistics Monitoring Tool)相关推荐

  1. jstat命令(Java Virtual Machine Statistics Monitoring Tool

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! JDK内 ...

  2. jps命令 Java Virtual Machine Process Status Tool

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! JDK内 ...

  3. 查看进程状态信息命令 jps - (Java Virtual Machine Process Status Tool)

    jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上 ...

  4. jps命令(Java Virtual Machine Process Status Tool)(转)

    1.介绍 用来查看基于HotSpot的JVM里面中,所有具有访问权限的Java进程的具体状态, 包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java进程, ...

  5. 五分钟认清三款主流 Java Virtual Machine丨HotSpot、JRockit、J9

    可运行由 Java 语言编写出的程序的虚拟机可不仅仅只有 HotSpot 一款!包括本文内所介绍的 HotSpot.JRockit.J9 三款虚拟机也非全部!只不过文内的三款是我们一直在使用或者之后极 ...

  6. jvisualvm命令 Java Virtual Machine Monitoring Troubleshooting

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! JDK内 ...

  7. jvisualvm命令(Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool)

    JDK内置工具使用 一.javah命令(C Header and Stub File Generator) 二.jps命令(Java Virtual Machine Process Status To ...

  8. Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Progra

    本人学化学的小白,自学JAVA.本来电脑第一次本来装JDK17的时候,应该是装成功了,后来eclipse出了点问题,我以为是JDK17的问题,就卸载重装, 结果就悲剧了. 每次重装都有问题,win命令 ...

  9. 安装java虚拟机 jvm_一、安装JDK1、 JVM(Java Virtual Machine—Java虚拟机)JRE(Java Runtime Environment—Java运行...

    一.安装JDK 1. JVM(Java Virtual Machine-Java虚拟机) JRE(Java Runtime Environment-Java运行时环境) JDK(Java Develo ...

最新文章

  1. Git 常用命令清单
  2. Json返回时间中出现乱码问题的两种解决方法
  3. 逆向工程核心原理读书笔记-API钩取之记事本小写转大写
  4. JQueryEasyUI学习笔记(十一)datagrid 右键菜单,冻结列
  5. 聚合多个文件_python数据分析与挖掘(二十五)--- Pandas高级处理分组与聚合
  6. matlab2c使用c++实现matlab函数系列教程-conv函数
  7. LCD 驱动的整体分析。
  8. Python基础:安装包
  9. 服务器怎么查看c盘大文件在哪里,怎么快速查找系统中的大文件?
  10. 内存管理中的虚拟地址到物理地址翻译
  11. Mac 程序员的十种武器
  12. 从GPT-1到GPT-4看ChatGPT的崛起
  13. 如何去掉网格线及网格区域颜色
  14. Node.JS的魔力与神话
  15. Windows下安装zookeeper
  16. Learning FRAME Models Using CNN Filters for Knowledge Visualization
  17. idea项目打包为war包
  18. 第 0000 题: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。
  19. 在生活当中过得不如意也就算了
  20. 微信开发之JSSDK调用

热门文章

  1. iOS xib 点击事件未响应
  2. 创建富文本(文本可以包含文字,图片,自定义节点),c++,cocos2dx
  3. 1、射频功率放大器设计之偏置电路设计
  4. 模拟电路:晶体管偏置
  5. 常用的MIMETYPE列表
  6. 多学女性心理学 远离不良择偶观
  7. 搭建skywalking对Java应用进行监控
  8. Python 爬虫-爬取阿里旅行特价机票信息(1)
  9. mysql-generator用法_mybatis-generator使用教程
  10. Java语言求100以内的素数(详解)