2012-02-17 12 views
5

Netbeansのメモリ監視ツール(実際にはVisualVmと同じツールである は埋め込みVisualVm )は、メモリリークを追跡するためのintermeting metric:Surviving Generations Metricを持っています。生存世代のメトリックの理解

definition of this metricがoracle.comで見つけることができる:

  • 生成は、(二ガベージコレクションの間で)同じGC間隔
  • 存続世代が生存生成である内で作成されたインスタンスのセットであります少なくとも1つのガベージコレクション。生き残ったガベージコレクションの数 - 世代の年齢は - そのユニークな識別子
  • 存続ジェネレーションズ(メトリック)の値は、ヒープ上で、現在生きている別の生き残りの世代数(異なる世代の年齢と世代数)
です

2番目の定義について質問があります。私はインスタンスがガベージコレクションを生き残るためにはどういう意味があるのか​​分かっています。しかし、私は世代がガベージコレクションで生き残るためには何を意味するのか分かりません。 世代の少なくとも1つのインスタンスがガーベッジコレクションを生き延びていることを意味しますか?

+0

小さな訂正:Netbeansのメモリ監視ツールは、埋め込みVisualVMではありません。 VisualVMには、NetBeans Profilerの削除されたバージョンが含まれています。 VisualVMのCPUおよびメモリプロファイリングは、NetBeans Profilerコードに基づいています。 –

+0

情報ありがとうございます。私は私の質問を更新しました。 – barjak

答えて

4

はい。基本的には、ガベージコレクションXとX + 1の間に作成されたインスタンスの中には、ガベージコレクションが発生したときに生きているものもあります。

私の意見では、3つの定義はすべてクラスごとに意味があります。つまり、与えられたクラスの "生存世代(メトリクス)値"は、ヒープ上で現在生きているこのクラスの異なる世代の数です。

+0

はい、NetBeans/VisualVMがクラスごとにこのメトリックを提供できることを指摘してくれてありがとうございます。そして、実際にはメモリリークを追跡するための非常に有用な情報です! – barjak

関連する問題