Netbeans的内存监视工具(与VisualVm是同一工具)具有用于跟踪内存泄漏的有趣度量:“幸存世代”度量。

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

  • 生成是在同一GC间隔(两个垃圾回收之间)内创建的一组实例。
  • 尚存的世代是指可以存活至少一个垃圾回收的世代。幸存的垃圾回收数量(该代的年龄)是其唯一标识符
  • 生存世代(度量标准)值是堆上当前存活的不同生存世代的数量(具有不同世代年龄的世代数量)

  • 我对第二个定义有疑问。我知道实例在垃圾回收中生存下来意味着什么。但是我不确定在垃圾回收中生存下来意味着什么。这是否意味着至少有一个世代实例在垃圾回收中幸存了下来?

    最佳答案

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

    我认为,所有三个定义仅在每个类(class)才有意义。我的意思是,给定类的“尚存世代(指标)值”是该类现在在堆上还活着的不同世代的数量。

    10-01 19:18