IBM Heap Analyzer - finalize方法

时间:2011-07-29 09:36:56

标签: java performance finalizer heap-dump

以下屏幕显示取自IBM Heap Analyzer。 enter image description here

我想了解'Finalize()方法的对象数与'实现finalize()方法的垃圾对象数'之间的区别。

1 个答案:

答案 0 :(得分:1)

据我所知,“具有Finalize()方法的对象数量”意味着堆上有5个具有finalize方法的活动对象。如果你有很多这样的话,那么他们就不会受到任何伤害 - 直到他们必须进行GC。所以这是一种在地平线上酝酿的东西的暗示。

值“实现finalize()方法的垃圾对象数量”表示有多少对象已经被垃圾回收,并且有finalize()方法。与上面的数字不同,这些是付出代价的物品。

如果第一个数字很小并且这些对象是长寿的,则无需担心。

如果第一个数字很小而第二个数字很高,这意味着你有许多带有finalize()方法的短期对象,这可能是一个问题,因为它使GC运行更加昂贵。