在面向事务的操作中查找内存泄漏

此过程可以帮助标识程序中的一个阶段,该阶段创建新对象但不释放它们,这就不能通过垃圾收集除去它们。例如,程序创建了一个对话框窗口,在关闭该窗口之后,与此对话框相关的对象继续被持有。一般过程包含下列各项:

  1. 对应用程序进行概要分析。在执行所讨论的操作前收集对象引用并查看“对象引用”表。使用标识内存泄漏中描述的过程。
  2. 运行操作,再次收集对象引用,并查看该表以了解创建的对象引用。 
  3. 终止操作,收集对象引用,并查看该表以了解是否仍存在对创建的对象的任何引用。

在操作之前和之后收集对象引用

  1. 要创建对象引用的转储,使用收集对象引用按钮 带有样式化图标的按钮。 在转储之前已存在的对象就是旧对象。 
  2. 然后,在操作完成之后创建对象和引用的转储。在“对象引用”表中,将把在对引用的两次转储之间的时间间隔内创建的但是不能收集的对象标记为新对象

查看对象引用表中的概要分析数据

  1. 打开“概要分析监视器”视图。
  2. 选择代理程序。
  3. 右键单击,然后选择打开方式 > 对象引用。 “对象引用”表将打开。

标识对象的引用

要标识对象的引用:

  1. 打开“对象引用”表。
  2. 确保选择了“显示引用对象”。
  3. 选择对象类,然后展开该项。
  4. 标识那些阻止回收新对象的引用。
 

相关概念
概要分析工具概述
概要分析资源
对象引用表

相关任务
标识内存泄漏 
对应用程序进行概要分析
启动或连接 Java 进程
分析性能和内存使用情况 - 概述


 
 

>