Java 理解存活世代度量
Netbeans的内存监控工具(与VisualVm是同一个工具)有一个有趣的度量来跟踪内存泄漏:幸存代度量 可以在oracle.com上找到:Java 理解存活世代度量,java,netbeans,memory-leaks,garbage-collection,visualvm,Java,Netbeans,Memory Leaks,Garbage Collection,Visualvm,Netbeans的内存监控工具(与VisualVm是同一个工具)有一个有趣的度量来跟踪内存泄漏:幸存代度量 可以在oracle.com上找到: 生成是在相同的GC间隔内(两个垃圾收集之间)创建的一组实例 幸存的一代是至少在一次垃圾收集中幸存的一代。幸存的垃圾收集数量(该代的年龄)是其唯一标识符 Surviving Generations(metrics)value是堆上当前处于活动状态的不同幸存代数(具有不同代龄的代数) 我对第二个定义有疑问。我知道实例在垃圾收集中生存意味着什么。但我不确定
- 生成是在相同的GC间隔内(两个垃圾收集之间)创建的一组实例
- 幸存的一代是至少在一次垃圾收集中幸存的一代。幸存的垃圾收集数量(该代的年龄)是其唯一标识符
- Surviving Generations(metrics)value是堆上当前处于活动状态的不同幸存代数(具有不同代龄的代数)
我对第二个定义有疑问。我知道实例在垃圾收集中生存意味着什么。但我不确定一代人要在垃圾收集中生存下来意味着什么。这是否意味着至少有一个生成实例在垃圾收集过程中幸存?是。基本上,这意味着,在垃圾收集X和X+1之间创建的实例中,有一些实例在发生更多垃圾收集时仍然存在
在我看来,这三个定义只有在每一类中才有意义。我的意思是,给定类的“尚存代(度量)值”是该类在堆上的不同代数。是的,感谢您指出NetBeans/VisualVM能够为每个类提供此度量。这确实是一个非常有用的信息,用于跟踪内存泄漏!小更正:Netbeans的内存监控工具不是嵌入式VisualVM。VisualVM包含精简版的NetBeans探查器。VisualVM中的CPU和内存评测基于NetBeans评测器代码。感谢您提供的信息。我更新了我的问题。