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
原文地址:https://www.cnblogs.com/zjdxr-up/p/14932954.html