利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题
2009-12-24 00:00:00 来源:WEB开发网核心提示: 顶级泄漏疑点十分重要,您应点击表上方的链接,利用 Memory Dump Diagnostic for Java (MDD4J) 分析内存管理问题(8),查看其内容示意图,随后查看表中列举的泄漏疑点,图 7 显示了按实例数量降序排列的表,图 7. 按实例数量排序的对象表查看原图(大图)数据结构D
顶级泄漏疑点十分重要,您应点击表上方的链接,查看其内容示意图。随后查看表中列举的泄漏疑点,识别哪些类只是容器,哪些类是泄漏类。为此,您需要了解为其生成堆转储的应用程序的结构或实现。请牢记,列为泄漏类的类本身可能并不是导致泄漏的原因。更有可能是其他用于创建类实例的代码导致了过度的内存占用。
识别出泄漏类后,您要检查 Data Structures 视图,确认泄漏根或泄漏单元占用了多少堆。如果 Data Structures 视图中未列出任一项内容,则泄漏并非真正的泄漏,此时应审查 Data Structures 视图中提供的占用堆比例最大的因素。(Data Structures 视图将在稍后详细介绍)。
对象表
Object Tables 视图包含两个子视图,列举了堆中的所有类和各类的实例。利用 Object Tables 选项卡中的视图可获得更多信息,包括堆中指定对象和类的数量,或确认泄漏疑点的大小。
两个表中的数据均可按列排序,只需点击列标题即可。再次点击列即可切换排序的次序。图 7 显示了按实例数量降序排列的表。
图 7. 按实例数量排序的对象表
查看原图(大图)
数据结构
Data Structures 视图(如图 8 所示)提供了关于应用程序数据结构的内部结构的更多细节。包含在此视图内的显示基于由 IBM Research 团队开发的 Yeti 技术。
图 8. Data Structures 视图
更多精彩
赞助商链接