以下屏幕显示取自 IBM Heap Analyzer。
我想了解“具有 Finalize() 方法的对象数量”和“实现 Finalize() 方法的垃圾对象数量”之间的区别。
最佳答案
据我了解,“具有 Finalize() 方法的对象数量”意味着堆上有 5 个具有 Finalize 方法的 Activity 对象。如果你有很多这样的东西,那么它们本身不会造成任何伤害 - 直到它们必须被 GC 处理。因此,这暗示着即将发生的事情。
“实现 Finalize() 方法的垃圾对象的数量”值表示有多少具有 finalize()
方法的对象已被垃圾回收。与上面的数字不同,这些是付出了代价的物体。
如果第一个数字很小并且这些对象生命周期很长,则无需担心。
如果第一个数字较小而第二个数字较大,则意味着您有许多具有 finalize()
方法的短期对象,这可能会成为一个问题,因为它会使 GC 运行成本更高.
关于java - IBM 堆分析器 - 最终确定方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871197/