JVM内置调优工具
JVM内置调优工具
jdk自带有很多命令来优化应用
Jmap
用来查看内存信息,实例个数以及占用内存大小
jmap -histo 14660 > ./log.txt
打开log.txt,文件内容如下:
- num::序号
- instances:实例数量
- bytes:占用空间大小
- class name:类名称,[C表示char[],[S表示short[],[I表示int[],[B表示byte[],[[I 表示 int[]
查看堆信息
jmap -heap 14660
堆内存dump
jmap -dump:format=b,file=eureka.hprof 14660
也可以设置内存溢出自动导出dump文件(内存很大的时候,可能会导不出来)
- XX:+HeapDumpOnOutOfMemoryError
- XX:HeapDumpPath=./ (路径)
示例代码:
可以用jvisualvm命令工具导入该dump文件分析
Jstack
用jstack加进程id查找死锁,见如下示例
“Thread-1”线程名
prio=5 优先级=5
tid=0x000000001fa9e000 线程id
nid=0x2d64 线程对应的本地线程标识nid
java.lang.Thread.State: BLOCKED 线程状态
还可以用jvisualvm自动检测死锁
/+
本文由作者按照 CC BY 4.0 进行授权










