我使用内存分析工具来检测内存泄漏。我通过java.util.WeakHashMap得到了结果$ Entry类java.lang.Class @ 0x3790f200系统类,Native Stack保留了大部分堆空间。如何识别这是哪个对象?
答案 0 :(得分:1)
如果要查找该特定对象(地址0x3790f200),请单击内存分析器工具中工具栏上的放大镜图标,然后输入地址。一旦看到对象右键单击它并选择“显示保留集”。这将打开一个新的直方图表,显示第一个对象(@ 0x3790f200)在内存中保存的所有对象(按类型分组)。您可以选择“计算最小保留大小”(从工具栏或上下文菜单中),将“保留堆”列附加到表中。单击列标题对表进行排序,以便您可以看到哪些对象保留了大块内存。
从那时起,您可以使用上下文菜单中的命令,例如“列出具有传出引用的对象”,通过查看单个对象进一步调查。检查器窗口也可用于检查单个对象的字段。 希望这有点帮助。