Issue
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 ?
Solution
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.
Answered By - Nikem