Я использовал GarbageCollectorMXBean, чтобы получить JVM Full GC CollectionCount и CollectionTime. Но данные не равны данным, которые составляют , собранные jstat (но данные VisualVM равны jstat).GarbageCollectorMXBean Полная коллекция GCCount и CollectionTime
Итак, я проверяю VisualVM исходный код, чтобы изучить, как это работает, и увидели, что VisualVM также работает через GarbageCollectorMXBean, чтобы собрать полную JVM GC данных. Почему?
Я добавляю gc log для java-приложения (части JVM-параметра: -XX: + PrintGCDTails -verbose: GC -Xloggc: /home/yubaofu/work/debug/gc.log). Я прочитал журнал gc и увидел, что полный gc CollectionCount не равен данным, отображаемым jstat. Означает ли это, что jstat full gc не только полный gc?
VisualVM против jstat
VisualVM полный дс является 4
jstat полна дс также 4
JConsole против jstat
JConsole полный дс 2
jstat полный дс составляет 4
Почему тогда не равно?
дс журнал против jstat
дс журнал полный дс 2
jstat полный дс является 4
Я извиняюсь за мой бедный английский, надеюсь, вы понимаете, что я имею в виду :)
Я нашел то же descrepancy и решил, что это не имеет значения, в конце концов, но это любопытно. –
В javadoc для GarbageCollectorMXBean.getCollectionCount указано, что он возвращает «Возвращает общее количество созданных коллекций». и не упоминает только полный (так что возвратит другие, неполные коллекции тоже). Объяснит ли это различие? –
@ Disco3 да, но каждое имя gc имеет GarbageCollectorMXBean.so GarbageCollectorMXBean возвращает только имя представителя gc - общее количество собраний, которые произошли, а не общее количество коллекций номеров, которые произошли. – fuyou001