首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM学习系列学习四

JVM学习系列学习四

原创
作者头像
凯哥Java
发布2019-07-02 09:19:06
3890
发布2019-07-02 09:19:06
举报
文章被收录于专栏:凯哥Java凯哥Java

我们接着上一篇讲解:

使用命令查看对内存使用情况

使用到的命令: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学习系列》中的第三篇文章。如果想系统的学习,建议从本教程第一篇开始看。

下节预告:

0f6c917e7484896b6f869d22531d778c.png
0f6c917e7484896b6f869d22531d778c.png

本文来源:www.kaigejava.com

凯哥公众号:凯哥java(kaigejava)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档