以下屏幕显示摘自IBM Heap Analyzer。

我想了解“使用Finalize()方法的对象数量”和“实现finalize()方法的垃圾对象数量”之间的区别。
发布于 2011-07-29 17:54:49
据我所知,"Number of Objects with Finalize() method“意思是堆上有5个活动对象,它们有一个finalize方法。如果你有很多这样的东西,那么它们本身就不会有任何危害--除非它们必须进行GC。所以这是某种东西即将出现的迹象。
值"Number of垃圾objects implementing finalize() method“表示有多少具有finalize()方法的对象已经被垃圾回收。与上面的数字不同,这些对象已经付出了代价。
如果第一个数字很小,并且这些对象的寿命很长,那么就没有必要担心。
如果第一个数字很小,第二个数字很高,这意味着您有许多使用finalize()方法的短期对象,这可能是一个问题,因为这会使GC的运行成本更高。
https://stackoverflow.com/questions/6871197
复制相似问题