JAVA:从Heapdump读取HashMap对象内容

JAVA:从Heapdump读取HashMap对象内容,java,out-of-memory,heap-memory,jmx,Java,Out Of Memory,Heap Memory,Jmx,我需要更深入地分析OOM,并需要找出哪些对象导致了oracle T4CPreparedStatement JDBC层内部的OOM。因此,我在HashMap(java.util.Hashtable$Entry[])中查找内容 从HeapDump可以这样做吗 这可以通过JMX连接实现吗 我的HeapDump(*.phd文件)是在OOM期间由Websphere Application Server自动创建的 PS:可能可以在带有IBM扩展的Eclipse内存分析器工具中完成,但是如何做?PHD文件

我需要更深入地分析OOM,并需要找出哪些对象导致了oracle T4CPreparedStatement JDBC层内部的OOM。因此,我在HashMap(java.util.Hashtable$Entry[])中查找内容

  • 从HeapDump可以这样做吗
  • 这可以通过JMX连接实现吗
我的HeapDump(*.phd文件)是在OOM期间由Websphere Application Server自动创建的


PS:可能可以在带有IBM扩展的Eclipse内存分析器工具中完成,但是如何做?

PHD文件没有基本字段值或基本数组内容,因此您最多可以在HashMap中看到键和值的类型

哈希映射集合查询将失败:“转储格式‘DTFJ-PHD’不支持检查‘哈希条目’。”

“按类显示对象”可能有助于了解所持有的物品种类:

Class Name | Objects | Shallow Heap ------------------------------------------------------------------ java.util.HashMap | 1 | 40 |- java.lang.Class | 1 | 160 |- java.util.HashMap$Node[] | 1 | 136 | |- java.util.HashMap$Node | 10 | 240 | | |- sun.misc.URLClassPath$JarLoader | 9 | 504 | | |- java.lang.Class | 1 | 160 | | |- java.lang.String | 10 | 160 | | |- java.util.HashMap$Node | 4 | 96 | | |- sun.misc.URLClassPath$FileLoader| 1 | 24 | | '- Total: 5 entries | | ------------------------------------------------------------------ 类名|对象|浅堆 ------------------------------------------------------------------ java.util.HashMap | 1 | 40 |-java.lang.Class | 1 | 160 |-java.util.HashMap$Node[]| 1 | 136 ||-java.util.HashMap$Node | 10 | 240 || |-sun.misc.URLClassPath$JarLoader | 9 | 504 || |-java.lang.Class | 1 | 160 || |-java.lang.String | 10 | 160 || |-java.util.HashMap$Node | 4 | 96 || |-sun.misc.URLClassPath$FileLoader | 1 | 24 ||'-总计:5项|| ------------------------------------------------------------------ 你真的需要一个系统转储