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