Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Understanding the Surviving Generations Metric

Netbeans' memory monitoring tool (which is the same tool as VisualVm) has an interesting metric for tracking memory leaks : the Surviving Generations Metric.

A definition of this metric can be found on oracle.com :

  • a Generation is a set of instances created within the same GC interval (between two garbage collections)
  • a Surviving Generation is a Generation that survives at least one garbage collection. The number of survived garbage collections - the generation's age - is its unique identifier
  • Surviving Generations (metrics) value is the number of different Surviving Generations that are currently alive on the heap (number of Generations with different generation ages)

I have a question about the second definition. I know what it means for an instance to survive a garbage collection. But I'm not sure what it means for a generation to survive a garbage collection. Does it mean that at least one instance of the generation survives the garbage collection ?

like image 228
barjak Avatar asked Oct 08 '22 15:10

barjak


1 Answers

Yes. Basically that means, that among the instances, that were created between garbage collection X and X+1, there are some, that are alive now, when more garbage collections have occurred.

In my opinion, all three definitions make sense only per class. I mean, "Surviving Generations (metrics) value" of the given class is the number of different Generations of this class that are now alive on the heap.

like image 135
Nikem Avatar answered Oct 13 '22 06:10

Nikem