我使用 GarbageCollectorMXBean 来获取 JVM Full GC CollectionCount 和 CollectionTime。但是数据与 jstat 收集的数据不相等(但 VisualVM 的数据与 jstat 相等)。
所以,我查看了 VisualVM 源代码来研究它是如何工作的,并且看到 VisualVM 也可以通过 GarbageCollectorMXBean 来收集 JVM 全 GC 数据。为什么?
我为 java 应用程序添加 gc 日志(部分 JVM 参数是 -XX:+PrintGCDetails -verbose:GC -Xloggc:/home/yubaofu/work/debug/gc.log)。我阅读了 gc 日志,发现完整的 gc CollectionCount 不等于 jstat 显示的数据。这是否意味着 jstat full gc 不仅仅是 full gc ?
visualVm vs jstat
visualVm full gc is 4
jstat is full gc also 4
jconsole vs jstat
jconsole full gc is 2
jstat full gc is 4
为什么不相等呢?
gc log vs jstat
gc log full gc is 2
jstat full gc is 4
我很抱歉我的英语不好,希望你能明白我的意思:)