了解幸存的世代指标

时间:2012-02-17 15:27:33

标签: java netbeans memory-leaks garbage-collection visualvm

Netbeans的内存监控工具(实际上是嵌入式VisualVm 与VisualVm相同的工具)具有用于跟踪内存泄漏的有效指标:Surviving Generations Metric。

可以在oracle.com上找到definition of this metric

  • 生成是在同一GC间隔(两个垃圾收集之间)中创建的一组实例
  • 生存世代是至少存在一次垃圾收集的一代。幸存垃圾收集的数量 - 生成年龄 - 是其唯一标识符
  • Surviving Generations(metrics)值是堆上当前存活的不同生存世代的数量(具有不同世代年龄的世代数)

我对第二个定义有疑问。我知道实例在垃圾收集中存活意味着什么。但我不确定对垃圾收集的影响是什么意思。是否意味着至少有一个代的实例在垃圾收集中存活了吗?

1 个答案:

答案 0 :(得分:4)

是。基本上这意味着,在垃圾收集X和X + 1之间创建的实例中,当发生更多垃圾收集时,有一些现在还活着。

在我看来,这三个定义仅适用于每个班级。我的意思是,给定类的“生存代数(度量)值”是此类中现在在堆上存活的不同代的数量。