jvm自带工具之jmap

jmap是java虚拟机自带的一种内存映像工具。

一般通过jmap可以生成堆的当前使用情况的快照,然后用它来分析或者调优JVM内存使用。

jmap -help
jvm自带工具之jmap

jmap -histo:live pid
打印堆的直方图。对于每个Java类,将打印对象数,以字节为单位的内存大小以及完全限定的类名。VM内部类名称以“ *”前缀打印。如果指定了live子选项,则仅计算活动对象。
jvm自带工具之jmap

jmap -heap pid
打印heap的使用情况,配置的参数信息,使用的垃圾收集器等信息。

MaxHeapSize:最大堆空间
NewSize:新生代分配大小
MaxNewSize:新生代最大分配大小
OldSize:老年代分配大小
NewRatio:新生代占整个堆空间的比例,2表示:新生代:老年代 = 1:2
SurvivorRatio:Survivor区占新生代空间的比例,8表示:Survivor:eden = 2:8
MetaspaceSize:元空间大小

后半部分是heap的使用情况
jvm自带工具之jmap

jmap -dump:format=b,file=文件名.phrof pid
生成当前heap使用情况的快照。
jvm自带工具之jmap
对应生成的文件可以使用eclipse mat内存分析工具进行分析。