【问题标题】:JAVA: Read HashMap object Content from HeapdumpJAVA:从 Heapdump 读取 HashMap 对象内容
【发布时间】:2020-10-01 12:51:09
【问题描述】:

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

  • 这可能来自 HeapDump 吗?
  • 这可以通过 JMX 连接实现吗?

我的 HeapDump(*.phd 文件)由 Websphere Application Server 在 OOM 期间自动创建。

PS:也许它可以在带有 IBM Extensions 的 Eclipse Memory Analyzer Tool 中完成,但如何?

【问题讨论】:

    标签: java out-of-memory heap-memory jmx


    【解决方案1】:

    PHD 文件没有原始字段值或原始数组内容,因此您最多只能在 HashMap 中看到键和值的类型。

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

    “按类显示对象”可能有助于查看持有哪些类型的东西:

    班级名称 |对象 |浅堆 -------------------------------------------------- ---------------- 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 个条目 | | -------------------------------------------------- ----------------

    你真的需要一个系统转储。

    【讨论】:

      猜你喜欢
      • 2013-10-25
      • 2020-06-10
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      相关资源
      最近更新 更多