标识内存泄漏
先决条件:
内存泄漏是程序的动态存储器分配逻辑中的错误,该错误导致它无法回收已废弃的内存。即,没有回收不再需要的对象。如果存在出乎意料多的这样的实例,则可能暗示存在内存泄漏。如果内存泄漏严重,会导致应用程序因耗尽内存而崩溃。
内存泄漏是由于对象继续保持对其他对象的引用而使得垃圾回收不能回收被引用的对象而导致的。“对象引用”表可以用来帮助标识这样的引用。
在应用程序中查找内存泄漏
要标识应用程序中的内存泄漏,请执行下列步骤:
- 在“概要分析和日志记录”透视图的“概要分析监视器”视图中选择监视器或代理程序。
- 右键单击监视器或代理程序,然后选择收集对象引用。现在将收集对象引用。
- 再次单击鼠标右键,然后选择打开方式 > 对象引用。这就打开了“对象引用”表。
- 选择本地菜单图标
并选择显示进行引用的对象。
- 检查对象列表和对它们的引用的数目。具有引用的对象存在潜在的内存泄漏问题。
在面向事务的操作中查找内存泄漏
此过程可以帮助标识程序中的一个阶段,该阶段创建新对象但不释放它们,这就不能通过垃圾回收除去它们。例如,程序创建了一个对话框窗口,在关闭该窗口之后,与此对话框相关的对象继续被占有。要标识面向事务的操作中的内存泄漏,请执行下列步骤:
- 在“概要分析和日志记录”透视图的“概要分析监视器”视图中选择监视器或代理程序。
- 在执行所讨论的操作前收集对象引用。单击鼠标右键并选择收集对象引用。现在将收集对象引用。
- 右键单击监视器,然后选择打开方式 > 对象引用。检查“对象引用”表并注意创建的对象引用。
- 运行想要检查的操作。
- 完成操作后收集对象引用。再次单击鼠标右键并选择收集对象引用。
- 右键单击监视器,然后选择打开方式 > 对象引用。检查“对象引用”表并注意创建的对象引用。
- 要检查特定对象的引用,请执行下列步骤:
- 从“对象引用”表的下拉菜单中,选择显示被引用的对象。
- 选择对象类,然后展开该项。
- 标识那些阻止回收新对象的引用。
相关概念
概要分析工具概述
概要分析资源
“对象引用”表
相关任务
对应用程序进行概要分析
启动或连接 Java 进程
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.