java 分析工具_java分析工具

java分析工具

jinfo

jstat

jmap

jstack

1.jinfo

查看java进程的扩展参数

-flag 查看某个jvm参数

-flag +/- 动态开启或关闭部分jvm参数

-flag name=value 修改部分jvm参数

flags 查看所有jvm参数

-sysprops 查看系统参数(System.getProperties())

①-flag 查看某个jvm参数

125537293cf8

jvm参数

②flag +/- 动态开启或关闭部分jvm参数

查看可关闭或开启的jvm参数

java -XX:+PrintFlagsFinal -version|grep manageable

125537293cf8

image.png

关闭某个进程的GC日志

125537293cf8

image.png

③ -flag name=value 修改部分jvm参数

125537293cf8

image.png

④flags 查看所有jvm参数

125537293cf8

image.png

sysprops 查看系统参数

125537293cf8

image.png

2. jstat (Java Virtual Machine statistics monitoring tool)虚拟机统计监控工具

查看堆内存各部分使用量,加载类的数量

125537293cf8

jstat

option: 参数选项

-t: 可以在打印的列加上Timestamp列,用于显示系统运行的时间

-h: 可以在周期性数据数据的时候,可以在指定输出多少行以后输出一次表头

vmid: Virtual Machine ID( 进程的 pid)

interval: 执行每次的间隔时间,单位为毫秒

count: 用于指定输出多少次记录,缺省则会一直打印

125537293cf8

image.png

options

说明

-class

显示类加载相关信息

-gc

垃圾回收统计

-gccapacity

堆内存统计

-gcnew

新生代垃圾回收统计

-gcnewcapacity

新生代内存统计

-gcold

老年代垃圾回收统计

-gcoldcapacity

老年代内存统计

-gcmetacapacity

元数据空间统计

-gcutil

显示垃圾收集信息

-gccause

显示垃圾回收的相关信息(通-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因

-compiler

显示JIT编译相关信息

-printcompilation

输出JIT编译的方法信息

① -class 类加载统计

125537293cf8

-class

参数

解释

loaded

已加载的类数量

Bytes

所占空间大小

Unloaded

已卸载的类数量

Bytes

已卸载类的空间大小

Time

装载类卸载类话费时间

② -gc垃圾回收统计

125537293cf8

image.png

参数

解释

S0C

年轻代中第一个survivor的大小(字节)

S1C

第二个survivor大小

S0U

第一个survivor已使用大小

S1U

第二个survivor已使用大小

EC

Eden总大小

EU

Eden已使用大小

OC

老年代大小

OU

老年代已使用大小

MC

metaspace(元数据空间)大小

MU

元数据已使用大小

CCSC

压缩类空间大小

CCSU

压缩类已使用空间大小

YGC

年轻代GC次数

YGCT

年轻代GC消耗时间(s)

FGC

老年代GC次数

FGCT

老年代GC消耗时间

GCT

GC总消耗时间

③-gccapacity 堆内存统计

125537293cf8

image.png

参数

说明

NGCMN

新生代最小容量

NGCMX

新生代最大容量

NGC

当前新生代容量

S0C

第一个survivor大小

S1C

第二个survivor大小

EC

Eden大小

OGCMN

老年代最小容量

OGCMX

老年代最大容量

OGC

老年代当前容量

OC

老年代容量

MCMN

metaspace最小容量

MCMX

metaspace最大容量

MC

metaspace当前大小

CCSMN

压缩类空间最小容量

CCSMX

压缩类空间最大容量

CCSC

压缩类空间当前大小

YGC

新生代gc次数

FGC

老年代gc次数

④-gcnew 新生代gc统计

125537293cf8

image.png

参数

说明

S0C

第一个survivor大小

S1C

第二个survivor大小

S0U

第一个survivor已使用大小

S1U

第二个survivor已使用大小

TT

对象在新生代存活的次数???

MTT

对象在新生代存活的最大次数

DSS

期望的survivor大小???

EC

Eden大小

EU

Eden已使用大小

YGC

新生代gc次数

TGCT

新生代GC消耗时间

⑤-gcnewcapacity 新生代内存统计

125537293cf8

image.png

参数

说明

NGCMN

年轻代最小容量

NGCMX

年轻嗲最大容量

NGC

当前年轻代大小

S0CMX

survivor1最大容量

S0C

当前survivor1大小

S1CMX

survivor2最大容量

S1C

当前survivor2大小

ECMX

Eden最大容量

EC

当前Eden大小

YGC

年轻代GC次数

FGC

老年代GC次数

⑥-gcold 老年代gc统计

125537293cf8

image.png

参数

说明

MC

方法区(metaspace)大小

MU

metaspace已使用大小

CCSC

压缩类空间大小

CCSU

压缩类空间已使用大小

OC

老年代大小

OU

老年代已使用大小

YGC

年轻代GC次数

FGC

老年代GC次数

FGCT

老年代GC消耗时间

GCT

GC消耗总时间

⑦-gcoldcapacity 老年代内存统计

125537293cf8

image.png

参数

说明

OGCMN

老年代最小容量

OGCMX

老年代最大容量

OGC

当前老年代大小

OC

老年代大小

YGC

年轻代次数

FGC

老年代GC次数

FGCT

老年代GC消耗时间

GCT

GC总消耗时间

⑧-gcmetacapacity 元数据空间内存统计

125537293cf8

image.png

参数

说明

MCMN

metaspace最小容量

MCMX

metaspace最大容量

MC

当前metaspace大小

CCSMN

压缩类空间最小容量

CCSMX

压缩类空间最大容量

CCSC

当前压缩类空间大小

YGC

年轻代GC次数

FGC

老年代GC次数

GCT

GC总消耗时间

⑨-gcutil gc统计

125537293cf8

image.png

参数

说明

S0

survivor1使用比率

S1

survivor2使用比率

E

Eden使用占Eden总容量的百分比

O

老年代使用比率

M

metaspace使用比率

CCSC

压缩类空间使用比率

YGC

年轻代gc次数

YGCT

年轻代GC消耗时间

FGC

老年代GC次数

FGCT

老年代GC消耗时间

GCT

GC消耗总时间

⑩-gccause 显示gc信息,比-gcutil 多了一项 最后一次或当前发生GC的原因,

125537293cf8

image.png

参数

说明

LGCC

最后一次发生GC的原因

GCC

NoGC(当前没有发生GC)

⑪ -compiler 显示JIT编译信息

125537293cf8

image.png

参数

说明

Compoled

编译任务执行数量

Failed

编译任务执行失败的数量

Invalid

编译任务执行失效的数量

Time

编译任务消耗时间

FailedType

最后一个编译任务失败的类型

FailedMethod

最后一个编译任务失败 所在的类及方法

⑫ -printcompilation 当前vm执行信息

125537293cf8

image.png

参数

说明

Compiled

编译任务执行数量

Size

方法生成的字节码大小

Type

编译类型

Method

类名和方法名用来标识编译的方法。类名使用/做为一个命名空间分隔符。方法名是给定类中的方法。上述格式是由-XX:+PrintComplation选项进行设置的

3.jmap 查看内存信息

①查看类实例数及占用内存大小

125537293cf8

image.png

log.txt 文件内容如下

125537293cf8

image.png

②堆信息

125537293cf8

image.png

125537293cf8

image.png

③堆内存dump

125537293cf8

image.png

也可以设置内存溢出自动导出dump文件(内存很大的时候可能导不出来):

-XX:+HeapDumpOnOutOfMemory

-X:HeapDumpPath=./

125537293cf8

image.png

可以用jvisualvm命令工具导入该dump文件分析

125537293cf8

image.png

jstack 堆栈跟踪工具,生成当前时刻的线程快照

125537293cf8

image.png

可以使用jstack进行死锁检测

125537293cf8

死锁

125537293cf8

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值