JVM分析工具
创始人
2024-01-30 15:39:56
0

JVM在运行过程中,我们可以利用各种工具对JVM进行分析,这是性能调优的利器。可以通过各种工具了解在系统运行过程中,在JVM底层到底发生了什么。JVM分析工具一般分为两种,一种是命令行工具,一种是图形界面工具。

JVM分析工具

JDK自带的命令行工具都在jdk的bin目录下(C:\Program Files\Java\jdk1.8.0_291\bin)。内置的命令行工具可以帮助我们系统运行过程中JVM内部的运行过程。主要的工具有如下

  • java:java应用的启动程序,如java -jar xx.jar
  • javac:jdk内置的编译工具,将java源文件编译为.class文件。如javac xx.java
  • javap:反编译class文件工具,如javap -verbose xx.class
  • javadoc:根据java代码和标准注释,自动生成相关的API说明文档
  • javah:JNI开发时,根据java代码生成需要的.h文件
  • extcheck:检查某个jar文件和运行时扩展jar有没有版本冲突,一般使用比较少
  • jdb:Java Debugger,可以调试本地和远端程序,属于JPDA中的一个demo实现,供其他调试器参考。开始很少使用
  • jar:打包工具,可以将文件和目录打包成.jar文件,jar文件从本质上来讲就是zip文件,只是后缀不同。
  • keytool:安全证书和密钥的管理工具
  • jarsigner:JAR文件签名和验证工具
  • policytool:是一款图形界面工具,管理本机的Java安全策略
  • jps/jino:查看运行中的java进程
  • jstat:查看JVM内部gc相关信息
  • jmap:查看线程信息
  • jcmd:执行JVM相关分析命令(整合命令)
  • jrunscript/jjs:执行js命令

命令行指令具体用法在csdn上有大量文章可以参考,以下会列出几个比较常用的指令作为参考。

1 jps/jino命令

  • jps指令可以列出操作系统上正在运行的java进程
    jps命令
  • jps -l 指令可以列出操作系统上正在运行的java进程,可以输出主类或jar路径
    jpl -l指令
  • jps -mlvV指令可以输出更详细信息,包括系统参数等
    jps -mlvV指令

2 jstat指令

可以通过jstat -options查看jstat可以支持的参数类型
jista指令
如采样100次,每次间隔100ms
jstat -gcutil pid 100 100
采样100次每次间隔100ms

3 jmap指令

jmap指令可以查看堆内存占用的一些情况
如jmap -histo 33824,查看33824进程的堆占用情况
jmap指令

4 jstack指令

jstack属于线程堆栈分析工具
如jstack -l 33824,查看进程33824的堆栈信息
jstack指令

5 jcmd指令

jcmd可以理解成前面所有命令的集合。这个指令用的比较多,如果不记得jcmd可以支持哪些参数,可以输入jcmd pid help指令
jcmd help指令
jcmd VM.flags指令

6 jrunscript/jjs指令

jjs指令是java命令行脚本执行工具,可以解释字形javascript脚本
jrunscript指令

2 JVM图形化分析工具

命令行分析工具虽然能给JVM分析提供方便,但没有图形界面交互风格友好。目前,JVM提供以下几种图形化界面工具可以给开发者分析JVM运行分析。

1 jconsole工具

直接在命令界面,输入jconsole命令即可启动jconsole工具(windows系统是在”运行“框输入”cmd",弹出小黑框再输入“jconsole”即可)。jconsole聚焦于监控JVM内存、线程、CPU等使用情况及发展趋势。
jconsole工具

2 jvisualvm

jdk8大概从26开始,jvisualvm都没有被直接打包进jdk,所以直接通过jvisualvm命令,不会打开jvisualvm。可以去官网直接下载jvisualvm工具,下载之后再使用。下载地址为:visualvm.github.io。jvisualvm比较核心的是CPU抽样器。也可以直接点击如下链接进行资源下载
jvisualvm包下载路径:jvisualvm资源包
jvisualvm

3 jmc

jmc功能非常强大,不仅包括jconsole及jvisualvm功能,还有一个飞行记录的能力,把一段时间段内,JVM的变化记录下来,从而对jvm内部各种状态进行分析(包括内存、cpu)。
从2020年7月以后,jmc就已经不再打包到jdk,jdk默认不带jmc,所以需要手工下载。
jmc包下载和使用教程可以参考jmc包和部署教程
jmc

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...