我试图了解jstat
的输出以及Java GarbageCollectorMXBean.getCollectionCount()
提供的API。
将jstat
与-gcutil
选项一起使用可提供名为“FGC - 完整GC事件数”的统计信息。这个数字到底是什么意思?它是否表示相应垃圾收集器收集的对象总数,如在该样本时间段内在次要集合和主要集合中清除的总对象数量?如果不是,那么它表示什么?
来到GarbageCollectorMXBean.getCollectionCount()
,它是否也表示相同的事情 - 相应GC收集的对象总数。
如果有人能够更好地理解上述内容,那就太棒了!感谢。
答案 0 :(得分:1)
FGC
的{{1}}列显示"完整GC事件的数量"。这基本上意味着自JVM启动以来执行的完整垃圾收集的数量。它没有说明收集对象的数量。
jstat
的{{1}}列显示相同的指标,但适用于年轻代收藏。
YGC
指标为您提供自JVM启动以来使用该特定垃圾收集器执行的集合数。
通常,jstat
的{{1}}列和您的终身代收集器的GarbageCollectorMXBean.getCollectionCount()
会给您相同的数字。然而,有一些微妙的差异。例如,如果您使用Concurrent Mark Sweep收集器,则每个Full GC将计为2" Full GC事件"由FGC
计算,而jstat
将其计为单个集合。