JVM调优常用工具

1 篇文章 0 订阅

1、JDK 内置命令行工具

JVM 命令行工具

工具简介
javaJava 应用的启动程序
javacJDK 内置的编译工具
javap反编译 class 文件的工具
javadoc根据 Java 代码和标准注释,自动生成相关的API说明文档
javah JNI开发时, 根据 java 代码生成需要的 .h文件。
extcheck检查某个 jar 文件和运行时扩展 jar 有没有版本冲突,很少使用
jdbJava Debugger ; 可以调试本地和远端程序, 属于 JPDA 中的一个 demo 实现, 供 其他调试器参考。开发时很少使用
jdeps探测 class 或 jar 包需要的依赖
jar打包工具,可以将文件和目录打包成为 .jar 文件;.jar 文件本质上就是 zip 文件, 只是后缀不同。使用时按顺序对应好选项和参数即可。
keytool安全证书和密钥的管理工具; (支持生成、导入、导出等操作)
jarsignerJAR 文件签名和验证工具
policytool实际上这是一款图形界面工具, 管理本机的 Java 安全策略

常用工具

工具简介
jps/jinfo查看 java 进程
jstat查看 JVM 内部 gc 相关信息
jmap查看 heap 或类占用空间统计
jstack查看线程信息
jcmd执行 JVM 相关分析命令(整合命令)
jrunscript/jjs执行 js 命令

jps 查看java进程

命令行执行: jps

19696 demo-0.0.1-SNAPSHOT.jar
19702 Jps

显示系统运行的Java进程ID

jinfo 查看java进程详细信息

格式:jinfo [pid]。例如: jinfo 19696 查看进程ID为19696的进程信息。

Java System Properties:
#Sat Mar 13 15:37:46 CST 2021
java.runtime.name=Java(TM) SE Runtime Environment
java.protocol.handler.pkgs=org.springframework.boot.loader
sun.boot.library.path=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib
java.vm.version=25.191-b12
gopherProxySet=false
java.vm.vendor=Oracle Corporation
java.vendor.url=http\://java.oracle.com/
path.separator=\:
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
...

展示Java进程的系统属性信息,jdk版本、jvm版本、启动参数等

jstat 查看 JVM 内部 gc 相关信息

格式:jstat -options。例如:jstat -gc 19696 1000 1000

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   
8704.0 7680.0  0.0   7380.1 133120.0 13662.6   52224.0     5919.9   30976.0 28812.1 4096.0 3654.0      7    0.046   1      0.023   -          -    0.069
8704.0 7680.0  0.0   7380.1 133120.0 13662.6   52224.0     5919.9   30976.0 28812.1 4096.0 3654.0      7    0.046   1      0.023   -          -    0.069
8704.0 7680.0  0.0   7380.1 133120.0 13662.6   52224.0     5919.9   30976.0 28812.1 4096.0 3654.0      7    0.046   1      0.023   -          -    0.069
8704.0 7680.0  0.0   7380.1 133120.0 13662.6   52224.0     5919.9   30976.0 28812.1 4096.0 3654.0      7    0.046   1      0.023   -          -    0.069

每列含义的对照表如下:
在这里插入图片描述
jstat -options的其他选项:

-class 类加载(Class loader)信息统计.
-compiler JIT 即时编译器相关的统计信息。
-gc GC 相关的堆内存信息. 用法: jstat -gc -h 10 -t 864 1s 20
-gccapacity 各个内存池分代空间的容量。
-gccause 看上次 GC, 本次 GC(如果正在 GC中)的原因, 其他 输出和 -gcutil 选项一致。
-gcnew 年轻代的统计信息. (New = Young = Eden + S0 + S1) -gcnewcapacity 年轻代空间大小统计.
-gcold 老年代和元数据区的行为统计。
-gcoldcapacity old 空间大小统计.
-gcmetacapacity meta 区大小统计.
-gcutil GC 相关区域的使用率(utilization)统计。 -printcompilation 打印 JVM 编译统计信息。

jmap 查看 heap 或类占用空间统计

在这里插入图片描述

jstack 查看线程信息

在这里插入图片描述

jcmd 执行 JVM 相关分析命令(整合命令)

可实现上述命令中的所有操作
在这里插入图片描述

jrunscript/jjs 执行js

在这里插入图片描述

2、 内置图形化工具

jconsole

在这里插入图片描述

jvisualvm (JVM 图形化工具)

在这里插入图片描述

VisualGC

可在 IDEA 插件中安装
在这里插入图片描述
在这里插入图片描述

jmc

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值