《深入理解Java虚拟机》第四章

JDK的bin目录下自带一些工具,有jps,jstat,jinfo,jmap,jhat,jstack,jconsole,HSDIS

jps 虚拟机进程状况工具

类似linux的ps命令,列出虚拟机进程,与进程关联的执行主类名,以及进程的ID(本地虚拟机唯一ID LVMID
jsp [option] [hostid]
[]中的内容代表可有可无 option代表参数,hostid虚拟机进程id
-l 主类全名 -q 只输出id

jstat 监视虚拟机各种运行状态

jstat [option vmid [interval[s|ms] [count]] ]
举例 jstat -gc 2764 250 20
-gc option 查询java堆各个区域容量以及gc的运行时间 2764 虚拟机进程id 250 间隔时间 20 查询次数 每隔250ms查询2764进程的gc运行状况,查询20次结束
这里写图片描述

jinfo 实时地查看和调整虚拟机各项参数

jinfo [option] pid

jmap 堆转储

jamp [option] vmid
-dump 堆转储 -heap显示java堆详细信息(收集器 参数配置)
-F 强制输出

jhat 分析jmap生成的堆dump

jhat xxxx.bin

jstat 生成当前时刻线程快照(线程的堆栈集合)

线程死锁 死循环 停顿 通过此方法进行查看
jstack [option] vimd

jconsole 可视化工具

内存监控=jsta命令
线程监控=jstack (线程会出现 1.死循环 2.等待 3.死锁)
死锁代码示例
这里写图片描述
死锁产生原因
Integer.valueOf()会将[-128,127]缓存 1,2在此区间 会出现一个线程持有1对象需要2对象,另一个线程持有2对象需要1对象

VisualVM 多合一故障处理工具

以上所有的集合还有扩展 强的一批

猜你喜欢

转载自blog.csdn.net/WantFlyDaCheng/article/details/81414851
今日推荐