一、JVM 命令行工具
jps/jinfo 查看 java 进程
jstat 查看 jvm 内部 gc 相关信息
jmap 查看 heap 或类占用空间统计
jstack 查看线程状态
jcmd
二、图形化工具
jconsole
Java Mission Control
jvisualvm
visualGC 插件
疑问:
如何分析死锁问题?
jcmd报错
PS C:\Users\hdj> jcmd 6756 VM.info
8268:
java.lang.IllegalArgumentException: Unknown diagnostic command
默认配置 堆内存大小是?
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size
https://www.oracle.com/java/technologies/javase-jdk15-downloads.html
参考
一、jclasslib
1. 介绍
2. 在IDEA 中安装jclasslib插件
1、打开IDEA的Settings设置,找到Plugins
2、搜索jclasslib点击安装,然后重启
3、点击View,打开jclasslib视图
4、查看方法的字节码
二、MAT(Memory Analyzer Tool)
2.1 下载
https://www.eclipse.org/mat/downloads.php
2.2 解压使用
解压启动
unzip MemoryAnalyzer-1.9.1.20190826-linux.gtk.x86_64.zip
./mat/ModemManager
打开使用: 导入-XX:+HeapDumpOnOutOfMemoryError 和 -XX:+HeapDumpPath 导出的堆详情文件(文件格式*.hprof)
三、JOL(Java Object Layout,查看Java 对象布局、大小工具)
3.1 添加依赖
<dependency>
<groupId>org.openjdk.jol</groupId>
<artifactId>jol-core</artifactId>
<version>0.9</version>
</dependency>