泄漏对象的鉴别方法
时间:2012-9-5
一般说来,一个正常的系统在其运行稳定后其内存的占用量是基本稳定的,不应该是无限制增长的。同样,对任何一个类的对象的使用个数也有一个相对稳定的上限,不应该是持续增长的,根据这样的基本假设,我们要以持续地观察系统运行时使用的内存的大小和各实例的个数,如果内存的大小持续地增长,则说明系统存在内在泄漏,如果某个类的实例的个数持续地增长,则说明这个类的实例可能存在泄漏情况。
Optimizeit是Borland公司的产品,主要用于协助对软件系统进行代码优化和故障诊断泄漏的,其功能众多,使用方便,其中的Optimizeit Profiler主要用于内存泄漏的分析。
Profiler的堆视图就是用来观察系统运行使用的内存大小和各个类的实例分配的个数的,各列自左至右分别为类名称,当前实例个数,自上个标记点开始增长的实例个数,占用的内存空间的大小,自上次标记点开始增长的内存的大小被释放的实例的个数信息,表的最后一行是汇总数据,分别表示目前JVM中的对象实例总数,实例增长总数,内存使用总数,内存使用增长总数等。