JVM学习系列学习四
- JVM学习系列
- 时间:2019-06-30 20:57
- 3530人已阅读
🔔🔔好消息!好消息!🔔🔔
如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号,代升级ChatGPT4
有需要的朋友👉:微信号
我们接着上一篇讲解:
使用命令查看对内存使用情况
使用到的命令:jstat
Jstat:此命令可以查看对内存各个部分的使用量,以及加载类的数据。
命令格式:
Jstat[-命令选项][vmid][间隔时间/毫秒][查询次数]
实例
1:查看class加载统计
1.1:使用jps命令查看java程序的PID:
命令:jps
说明:Bootstrap就是Java运行程序的PID
1.2:使用jstat -class JavaPID 命令查看:
如上图我们查出来的是:10662。所以命令:
Jstat -class 10662
说明:
Loaded:加载的class的数量 11010
Bytest:所占用空间的大小 21662.8
Unloaded:未加载数量 329
Bytest:未加载占用空间 513.6
Time:时间 21.82
1.3:查看编译统计
使用命令:jstat -compiler PID
说明:
Compiled:编译数量
Failed:失败数量
Invalid:不可用数量
Time:时间
FailedType:失败类型
FailedMethod:失败的方法
1.4:垃圾回收统计
命令:jstat -gc PID
此命令也可以指定打印的间隔和次数。
如我们想要每秒打印一次,共打印5次。命令:
Jstat -gc pid 1000 5
JDK1.7下的:
JDK1.8下的:
是否发现1.7与1.8还是由区别的。
说明:
S0C:第一个Survivor区的大小(KB)
S1C:第二个Survivor区的大小(KB)
S0U:第一个Survivor区的使用大小(KB)
S1U:第二个Survivor区的使用大小(KB)
EC:Eden区的大小(KB)
EU:Eden区的使用大小(KB)
OC:Old区大小(KB)
OU:Old使用大小(KB)
MC:方法区大小(KB)
MU:方法区使用大小(KB)
CCSC:压缩类空间大小(KB)
CCSU:压缩类空间使用大小(KB)
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
4Jmap的使用及内存溢出分析
4.1:查看内存使用情况
使用命令:jmap -heap PID
说明:从上图中,我们可以清晰的看出1.8堆内存模型的两个区域
在来看看JDK1.7的:
是不是发现多了Perm区。
从这里我们也能看出JDK1.7与JDK1.8的区别。
本文是《JVM学习系列》中的第三篇文章。如果想系统的学习,建议从本教程第一篇开始看。
下节预告:
上一篇: JVM学习系列学习三
下一篇: JVM学习系列学习五