java - IBM 堆分析器 - 最终确定方法

标签 java performance finalizer heap-dump

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

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

最佳答案

据我了解,“具有 Finalize() 方法的对象数量”意味着堆上有 5 个具有 Finalize 方法的 Activity 对象。如果你有很多这样的东西,那么它们本身不会造成任何伤害 - 直到它们必须被 GC 处理。因此,这暗示着即将发生的事情。

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

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

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

关于java - IBM 堆分析器 - 最终确定方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871197/

相关文章:

javascript - 建立 WebSockets 连接时 CPU 消耗 100%

javascript - 发现 JavaScript CDN 命中率

java - 使用终结器清理弱引用缓存?

java - 在 Java Web 应用程序中处理 X-FORWARDED-PROTO header

java - 扩展枚举属性

java - 当需要分析停用词时,如何使用 Lucene 忽略停用词搜索?

javascript - 在浏览器上保存数据(作为 JS 数组)是一件坏事吗?

c# - StreamWriter 什么时候被释放?

java - 为什么终结器有 "severe performance penalty"?

java - 快速查询 StringOutOfBoundsException