在JDK的bin目录下有一些java应用程序的诊断辅助工具。
jps 查看java进程
E:\dev-env\Java\jdk1.8.0_121\bin>jps
9872
7604 RemoteMavenServer
11496 Launcher
3336 Launcher
10476 Jps
- -m 可以输出传入主程序的参数
- -l 输出主函数的完整路径
- -v 显示java虚拟机的参数
jstat 查看运行时信息
[class]
用于查看类加载情况的统计
jstat -class pid:显示加载class的数量,及所占空间等信息。
[compiler]
查看HotSpot中即时编译器编译情况的统计
jstat -compiler pid:显示VM实时编译的数量等信息。
[gc]
查看JVM中堆的垃圾收集情况的统计
jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
[gccapacity]
查看新生代、老生代及持久代的存储容量情况
jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小
[gccause]
查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因。
jstat -gccause:显示gc原因
[gcnew]
查看新生代垃圾收集的情况
jstat -gcnew pid:new对象的信息
[gcnewcapacity]
用于查看新生代的存储容量情况
jstat -gcnewcapacity pid:new对象的信息及其占用量
[gcold]
用于查看老生代及持久代发生GC的情况
jstat -gcold pid:old对象的信息
[gcoldcapacity]
用于查看老生代的容量
jstat -gcoldcapacity pid:old对象的信息及其占用量
[gcpermcapacity]
用于查看持久代的容量
jstat -gcpermcapacity pid: perm对象的信息及其占用量
[gcutil]
查看新生代、老生代及持代垃圾收集的情况
jstat -util pid:统计gc信息统计
[printcompilation]
HotSpot编译方法的统计
jstat -printcompilation pid:当前VM执行的信息
E:\dev-env\Java\jdk1.8.0_121\bin>jstat -class 3336
Loaded Bytes Unloaded Bytes Time
3462 6532.2 0 0.0 3.89
E:\dev-env\Java\jdk1.8.0_121\bin>jstat -gc 3336
S0C S1C S0U S1U EC EU OC OU MC MU
CCSC CCSU YGC YGCT FGC FGCT GCT
5120.0 5120.0 0.0 4675.9 33280.0 33244.7 87552.0 88.0 18304.0 1780
1.0 2176.0 2068.3 3 0.129 0 0.000 0.129
jinfo 查看虚拟机参数
除了查看,还可以修改虚拟机参数 ,但是能力十分有限。
jmap 导出堆文件
导出对象统计信息
导出java程序当前堆的快照
查看classloader信息
jhat
分析java应用程序的堆快照
jstat
查看线程堆栈信息
image.png
jcmd
1.7新增的多功能工具,可以导出堆,查看集成,导出线程,执行GC等











网友评论