Jmap (Memory Map for Java)命令⽤于⽣成堆转储快照。如果不使⽤ jmap 命令,要想获取 Java 堆转储快照,还有⼀些⽐较“暴⼒”的⼿段:
-XX: +HeapDumpOnOutOfMemoryError参数,可以让虚拟机在 OOM 异常出现之后⾃动⽣成 dump ⽂件,⽤于系统复盘环节
和 info 命令⼀样,jmap 有不少功能在 Windows 平台下都是受限的,除了⽣成 dump ⽂件的 -dump 选项
和⽤于查看每个类的实例、空间占⽤统计的 -histo 选项在所有操作系统都提供之外,其余选项都只能在Linux/Solaris 下使⽤
# 启动1个spring boot项目用于测试
# 查看项目的pid
jps
# 查看堆
jmap -heap pid
# 显示堆中对象统计信息,包括类、实例数量、合计容量
jmap -histo pid
# linux中使用
jmap -histo pid|more
B :byte
C : char
I :Int
windows:
jmap -dump:format=b,file=d:\a.bin 进程id
mac:
jmap -dump:format=b,file=/Users/daniel/deskTop/a.bin 进程id