理解并比较GarbageCollectorMXBean和jstat实用程序

时间:2015-04-02 08:10:59

标签: java garbage-collection

我试图了解jstat的输出以及Java GarbageCollectorMXBean.getCollectionCount()提供的API。

jstat-gcutil选项一起使用可提供名为“FGC - 完整GC事件数”的统计信息。这个数字到底是什么意思?它是否表示相应垃圾收集器收集的对象总数,如在该样本时间段内在次要集合和主要集合中清除的总对象数量?如果不是,那么它表示什么?

来到GarbageCollectorMXBean.getCollectionCount(),它是否也表示相同的事情 - 相应GC收集的对象总数。

如果有人能够更好地理解上述内容,那就太棒了!感谢。

1 个答案:

答案 0 :(得分:1)

FGC的{​​{1}}列显示"完整GC事件的数量"。这基本上意味着自JVM启动以来执行的完整垃圾收集的数量。它没有说明收集对象的数量。

jstat的{​​{1}}列显示相同的指标,但适用于年轻代收藏。

YGC指标为您提供自JVM启动以来使用该特定垃圾收集器执行的集合数。

通常,jstat的{​​{1}}列和您的终身代收集器的GarbageCollectorMXBean.getCollectionCount()会给您相同的数字。然而,有一些微妙的差异。例如,如果您使用Concurrent Mark Sweep收集器,则每个Full GC将计为2" Full GC事件"由FGC计算,而jstat将其计为单个集合。