JVM调试指令
关于JVM的一些相关指令,记录下来用于调试,同时往后会有补充使用示例
- jps(Java Virtual Machine Process Status Tool)
jps主要用来输出JVM中运行的进程状态信息
1 | jps [options] [hostid] |
options选项说明
1 | -q 不输出类名,Jar包和传入main方法的参数 |
- jstack
jstack主要用来查看某个Java进程内的线程堆栈信息
1 | jstack |
options选项说明
1 | -F 当正常输出的请求不被响应时,强制输出线程堆栈 |
- jmap (Java Memory Map)
jmap查看堆内存使用情况,用于显示当前Java堆和永久代的详细信息
1 | jmap [options] pid |
options选项说明
1 | -dump 生成Java堆转储快照 |
假设一个Java进程pid: 123
查看堆详细信息:jmap -heap 123
生成dump文件:jmap -dump:file=~/java/dump/test.prof 123
查看当前堆中对象统计信息:jmap -histo 123
- jhat (Java Heap Analysis Tool)
用于分析使用jmap生成的dump文件,是JDK自带的工具
1 | jhat -J -Xmx512m [file] |
- jstat (Java Virtual Machine Statistics Monitoring Tool)
用于监视虚拟机运行时状态信息的命令,可以显示虚拟机进程中的类装载,内存,垃圾收集,JIT编译
1 | jstat [options] vmid [insterval] [count] |
[options] 操作参数选项说明
1 | -class 类加载的行为统计(包括类装载,卸载,及总空间和耗费时间 |
jstat -gc pid
jstat -gccapacity 11685
jstat -gcutil 11685
jstat -gccause 11685
jstat -gcnew 11685
jstat -gcnewcapacity 11685