前言:
用来记录jdk自带的几个处理工具,知道有这几个东西,等有需要的时候再去具体学习使用。
1、jps 虚拟机进程状况工具
功能:
可以列出正在运行的虚拟机进程,并显示虚拟机执行Main类名称及这些进程的本地虚拟机唯一ID(LVMID)。
命令:
jps [options ] [ hostid ]
jps -q:只输出LVMID,省略主类的名称
jps-m:输出虚拟机进程启动时传递给主类的参数
jps-l:输出主类的全名,如果进程时Jar,则输出其路径
jps-v:输出虚拟机进程启动时的JVM参数。
2、jstat 虚拟机统计信息监视工具
功能:
监视虚拟机各种运行状态信息的命令行工具,主要用来定位虚拟机性能的工具。它可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、JIT编译等运行数据。
命令:
可以使用 jstat -help 来查看命令参数
- option: 参数选项
- -t: 可以在打印的列加上Timestamp列,用于显示系统运行的时间
- -h: 可以在周期性数据数据的时候,可以在指定输出多少行以后输出一次表头
- vmid: Virtual Machine ID( 进程的 pid)
- interval: 执行每次的间隔时间,单位为毫秒
- count: 用于指定输出多少次记录,缺省则会一直打印
option 可以从下面参数中选择
- -class 显示ClassLoad的相关信息;
- -compiler 显示JIT编译的相关信息;
- -gc 显示和gc相关的堆信息;
- -gccapacity 显示各个代的容量以及使用情况;
- -gcmetacapacity 显示metaspace的大小
- -gcnew 显示新生代信息;
- -gcnewcapacity 显示新生代大小和使用情况;
- -gcold 显示老年代和永久代的信息;
- -gcoldcapacity 显示老年代的大小;
- -gcutil 显示垃圾收集信息;
- -gccause 显示垃圾回收的相关信息(通-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因;
- -printcompilation 输出JIT编译的方法信息;
各个区间的命令使用及相关的参数意思:
https://www.cnblogs.com/yjd_hycf_space/p/7755633.html
3、jinfo Java配置信息工具
功能:
实时查看和调整虚拟机各项参数。
命令:
https://www.jianshu.com/p/8d8aef212b25
4、jmap Java内存映像工具
功能:
生成堆转储快照。
命令:
https://www.jianshu.com/p/a4ad53179df3
5、jhat 虚拟机堆转储快照分析工具(JDK9被删除了)
功能:
与 jmap 命令一起使用,来分析 jmap 生成的堆转储快照。
命令:
https://www.cnblogs.com/flydean/p/jdk14-jmap-jhat.html
6、jstack 堆栈跟踪工具
功能:
生成虚拟机当前时刻的线程快照。IDEA 也提供该功能,如下图所示:
命令:
https://www.cnblogs.com/kongzhongqijing/articles/3630264.html
7、HSDIS JIT生成代码反汇编
功能:
分析程序如何执行。
安装:
https://www.jianshu.com/p/125f0ecf385f