jmap 查看jvm内存大小并进行dump文件内存分析
本文为博主原创,未经允许不得转载:
1.jmap的使用
Jmap 可以用来查看内存信息,实例个数以及占用内存大小.
jmap -histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果子参数加上live后,只统计活的对象数量.
命令:
jmap -histo pid // 或
jmap -histo:live pid
num:序号
instances:实例数量
bytes:占用空间大小
class name:类名称,[C is a char[],[S is a short[],[I is a int[],[B is a byte[],[[I is a int[][]
2. 查看堆信息:
jmap -heap pid
3. 堆内存dump到指定目录,并导入到 jvisualvm
jmap ‐dump:format=b,file=eureka.hprof pid
或
jmap ‐dump:format=b,file=eureka.tdump pid
dump生成的文件可以用jvisualvm命令工具导入该dump文件分析: 打开 jdk 的bin目录的 jvisualvm 工具,选择文件,再选择装入,
并选中对应的文件类型,即可进行导入文件,分析内存对象。
4. 可以使用指定的启动参数,将运行时的内存溢出主动导出到dump文件中
‐XX:+HeapDumpOnOutOfMemoryError ‐XX:HeapDumpPath=D:\jvm.dump