内存分析器工具 (MAT) 不显示无法访问的对象



我已经使用了独立的EMA(1.5.0)和eclipse插件(在eclipse 4.5中)来分析我的堆转储。

我想查看任何无法访问的对象信息,我已尝试在我的首选项和命令行选项 -keep_unreachable_objects 中启用keep_unreachable_objects选项,如此处所述。

但我仍然没有Java基础知识-->无法访问的对象直方图。

这是因为我的堆转储中没有无法访问的对象吗?我想一旦启用,至少我应该在"Java 基础知识"下拉列表中看到该选项。

谢谢。

禁用 MAT --> 首选项 --> 内存分析器 --> 保持无法访问的对象。

然后 Java 基础知识 --> 无法访问的对象直方图应该开始显示。

这似乎违反直觉,但我想当启用首选项时,MAT 不会区分引用的对象和无法访问的对象,因此,无法访问的对象直方图在 Java 基础知识中不可用。

您可以从以下位置查看文档: https://help.eclipse.org/2021-03/index.jsp?topic=/org.eclipse.mat.ui.help/welcome.html

正如@justAnotherGuy所说,您应该禁用"保持无法访问的对象",然后您将在Java Basics中看到"无法访问的对象直方图"。如果你之前解析转储,而保持无法访问的对象启用,你应该

  1. 关闭快照
  2. 使用窗口>堆转储历史记录右键单击选择堆转储,删除索引文件
  3. 使用"窗口>首选项">内存分析器禁用"保留无法访问的对象"然后重新分析转储,您将在 Java Basics 中看到无法访问的对象直方图。

此外,如果启用"保持无法访问的对象",则还可以看到无法访问的对象:

  1. 选择 Java 基础知识> GC 根查询。
  2. 选择"无法访问的对象"行。
  3. 对该行运行"显示保留集"查询。

相关内容

  • 没有找到相关文章

最新更新