0

以下屏幕截图取自 IBM Heap Analyzer。 在此处输入图像描述

我想了解“使用 Finalize() 方法的对象数”和“实现 finalize() 方法的垃圾对象数”之间的区别。

4

1 回答 1

1

据我了解,“具有 Finalize() 方法的对象数”意味着堆上有 5 个具有 finalize 方法的活动对象。如果你有很多这样的,那么它们不会造成任何伤害——直到它们必须被 GC 处理。因此,这暗示着一些正在酝酿中的事情。

值“实现 finalize() 方法的垃圾对象数量”表示有多少对象已被垃圾收集,它们确实具有finalize()方法。与上面的数字不同,这些是付出了代价的对象。

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

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

于 2011-07-29T09:54:49.390 回答