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 ?