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

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

 2009-12-24 00:00:00 来源:WEB开发网   
核心提示: 此 Analyzer 包含 Hashtable 的一个实例,此 Hashtable 包含 629 个 Chunk 实例,利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题(7),这是 Analyzer 的内部类,每个 Chunk 实例包含一个

此 Analyzer 包含 Hashtable 的一个实例。

此 Hashtable 包含 629 个 Chunk 实例,这是 Analyzer 的内部类。

每个 Chunk 实例包含一个 ArrayList。

1000 个 Chunk 实例中的所有 ArrayLists 包含 500,000 个 String 实例,总计大小为 76 MB。

下一个 Chunk 实例包含 Hashtable 实例(大小为 49 MB)。

此 Hashtable 包含 629 个 Chunk 实例。

每个 Chunk 实例包含一个 ArrayList。

1000 个 Chunk 实例中的所有 ArrayLists 包含 314,500 个 String 实例,总计大小为 48 MB。

对象/类泄漏疑点

这个视图比聚合数据级泄漏疑点列表更加简单。对象/类泄漏疑点表(如图 6 所示)显示了泄漏根及其泄漏容器的列表,以及容器的总大小和所有泄漏单元的区域大小落差。如前所述,此列表应包含与聚合数据结构级别表(如图 5 所示)相同的顶级泄漏疑点。

图 6. 对象/类泄漏疑点

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

图 6 显示了与聚合数据结构泄漏疑点视图(如图 5 所示)中的前两个泄漏疑点相同的一点。总大小的差别是由于聚合数据结构级别视图使用汇总实例计数,对象/类泄漏疑点视图使用实际事例和大小计数。

使用泄漏疑点视图

为了阅读两个泄漏疑点视图中的信息,首先要从第一行开始阅读表格。由于识别漏洞极为复杂,因而应注意列表中的最后一个疑点,若其泄漏容器大小低于堆大小的 5-10%(如图 2 的 Analysis Summary 视图所示),则表示这根本不是泄漏。此类微不足道的泄漏应予以忽略。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:利用 Memory Dump

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