【发布时间】:2013-10-18 20:18:21
【问题描述】:
我正在使用内存分析器工具分析堆转储。从支配树中,我选择了保留内存最高的类(大约 47%)。选定的对象没有参考,我看到有一个哈希映射条目,保留内存超过 1GB。我看到这样的键值对
Class Name | Shallow Heap | Retained Heap
---------------------------------------------------------------------------------------
key java.lang.String @ 0x717278cd8 MapAllProfilesOutput| 32 | 88
---------------------------------------------------------------------------------------
Class Name | Shallow Heap | Retained Heap
------------------------------------------------------------------------------------------------
value com.tibco.xml.xdata.xpath.Variable @ | 24 | 1,194,483,312
|- <class> class com.tibco.xml.xdata.xpath.Variable | 16 | 2,296
|- mValue com.tibco.xml.datamodel.nodes.Document | 48 | 1,194,483,288
------------------------------------------------------------------------------------------------
有没有办法获取 value 的内容?我正在阅读一些关于使用 OQL 进行散列的地方,所以想检查一下可能性。我的堆转储也大约是 4.5 GB。
【问题讨论】:
-
内容特别重要吗?它看起来相当简单。您将保留一些与 XPath 相关的变量,这些变量最终会保留整个内存中的文档。弄清楚如何在该地图中仅存储您关心的数据。
-
我知道它是一个 xpath 变量,但我想知道值是什么,以便分析哪些值不需要存储