JVM --------jmap-----查看堆内存信息、生成heap dump 文件(转储堆内存快照到指定文件)


一、用 jmap(Memory Map for Java)查看堆内存信息

 1.查看堆内存信息   

命令:jmap -histo pid 

解析:可以打印出当前堆中所有每个类的实例数量和内存占用

结果:

如下,class name 是每个类的类名([B 是 byte 类型,[C是 char 类型,[I 是 int 类型),bytes 是这个类的所有示例占用内存大小,instances 是这个类的实例数量:

2.使用jmap-dump 生成heap  dump 文件

执行 jmap -dump 可以转储堆内存快照到指定文件

命令格式:jmap -dump:format=b,file=xxx.bin ,就生成了 xxx.bin dump文件。

              其中pid是JVM进程的id,xxx.bin是生成的heap dump文件,在执行命令的目录下面

             如果要使用Eclipse Memory Analyzer来分析则文件的后缀要为hprof

         示例:jmap -dump:format=b,file=xxx.bin 1

                 jmap -dump:format=b,file=heap.hprof 1

                 jmap -dump:live,format=b,file=heap.bin  将当前的存活对象dump到文件,此时会触发FullGC