2012-02-17 60 views
5

Netbeans的內存監視工具(實際上是 嵌入式VisualVm 與VisualVm相同的工具)具有用於跟蹤內存泄漏的間隔度量標準:Surviving Generations Metric。瞭解生存的世代公制

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

  • 一代是一組相同的GC間隔內創建的實例(二垃圾收集之間)
  • 倖存代是存續的代至少有一個垃圾收集。存活垃圾收集的數量 - 世代的年齡 - 是其唯一標識
  • 倖存的世代(度量)值是堆中當前活着的不同存活世代的數量(不同代世代的世代數)

我對第二個定義有疑問。我知道實例在垃圾回收中的存在意味着什麼。但我不確定世代在垃圾收集中的生存意味着什麼。這是否意味着至少有一個代的實例存活了垃圾回收?

+0

小修正:Netbeans的內存監控工具不是嵌入式VisualVM。 VisualVM包含精簡版的NetBeans Profiler。 VisualVM中的CPU和內存分析基於NetBeans Profiler代碼。 – 2012-02-20 13:18:01

+0

感謝您的信息。我更新了我的問題。 – barjak 2012-02-20 15:14:22

回答

4

是的。基本上這意味着,在實例中,在垃圾收集X和X + 1之間創建的實例中,有一些現在還活着,當發生更多垃圾收集時。

在我看來,所有三個定義只有每個類都有意義。我的意思是,給定類的「生存世代(度量)值」是這個類的不同世代的數量,這些世代現在都在堆上。

+0

是的,感謝您指出NetBeans/VisualVM能夠爲每個類提供此度量標準。這確實是一個非常有用的跟蹤內存泄漏的信息! – barjak 2012-02-18 12:25:49