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 フル gc は 4
jstat もフル gc 4
jconsole vs jstat
jconsole フル gc は 2
jstat フル gc は 4
なぜ等しくないのですか?
gc ログ vs jstat
gc ログ フル gc は 2
jstat フル gc は 4
下手な英語で申し訳ありませんが、私の言いたいことを理解していただければ幸いです:)