WEB开发网
开发学院软件开发Java 利用 Memory Dump Diagnostic for Java (MDD4J) 分... 阅读

利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题

 2009-12-24 00:00:00 来源:WEB开发网   
核心提示: 启动和理解 MDD4J为了充分理解如何使用 MDD4J,您需要了解用于描述内存泄漏的几个术语的含义,利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题(3),图 1 通过名为 MyClass 的示例展示了这些术语,此示例具有一个 HashSet

启动和理解 MDD4J

为了充分理解如何使用 MDD4J,您需要了解用于描述内存泄漏的几个术语的含义。图 1 通过名为 MyClass 的示例展示了这些术语,此示例具有一个 HashSet,包含字符串对象。

图 1. 内存泄漏术语

利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题

泄漏根:包含导致泄漏容器的对象链的引用的对象。如果在所有者链中未发现任何类对象,则此术语表示可找到泄漏容器的内存转储中的根对象。

泄漏容器:唯一拥有所有泄漏对象的对象。在本例中是 HashMap。

泄漏单元:存在多个实例的数据结构内的对象。在本例中是 HashMap 内的 HashMap$Entry 对象。

所有者链:从泄漏根对象开始到泄漏容器对象的对象链。

内容:泄漏根下为堆消耗的大部分负责的实际数据。

另外还有一些未在图 1 中出现的信息,但与内存泄漏相关:

区域大小:给定对象可接触的所有对象的总大小。在本例中,就是影响泄露根的区域大小的所有对象。

区域大小落差:一个对象的区域大小和该对象的子对象的区域大小之间的差别。此差别与实例计数的差别是发现泄漏疑点的关键。

MDD4J 的启动与 IBM Support Assistant workbench 中安装的其他工具相同。图 2 显示了 workbench 中的 MDD4J 在启动并完成分析后的状态。在分析完成后,您看到的第一个视图就是 Analysis Summary。(如果希望将 MDD4J 从 workbench 导出到其他机器上,将有一个批处理文件或 shell 脚本可用于运行此工具)。

在下面的几节中,您将了解分析结果在 MDD4J 中的显示方式。所显示的信息针对主转储。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:利用 Memory Dump

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接