2017-09-06 12 views
2

Java GCログを調べますが、GCタイプについては奇妙なことがあります。私のテストアプリケーションは、これらのJVMコマンドラインGCオプションを使用してJava 8u121のx64上で実行されます:Java GCログは、メジャーおよびフルGCについて明らかではありません - シリアルコレクタ

-XX:+UseSerialGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps 

GCログからの抜粋があります:あなたが明らかにマイナーGCを最初の行を見ることができるように

2017-09-05T22:16:44.677+0200: 1.581: [GC (Allocation Failure) 2017-09-05T22:16:44.678+0200: 1.581: [DefNew: 139765K->17429K(157248K), 0.0936400 secs] 362075K->361613K(506816K), 0.0937556 secs] [Times: user=0.08 sys=0.02, real=0.09 secs] 
2017-09-05T22:16:45.177+0200: 2.081: [GC (Allocation Failure) 2017-09-05T22:16:45.177+0200: 2.081: [DefNew: 157184K->157184K(157248K), 0.0000394 secs]2017-09-05T22:16:45.177+0200: 2.081: [Tenured: 344183K->349561K(349568K), 0.0605620 secs] 501368K->500745K(506816K), [Metaspace: 2831K->2831K(1056768K)], 0.0607333 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] 
2017-09-05T22:16:45.239+0200: 2.142: [Full GC (Allocation Failure) 2017-09-05T22:16:45.239+0200: 2.142: [Tenured: 349561K->349547K(349568K), 0.0450676 secs] 506685K->506671K(506816K), [Metaspace: 2831K->2831K(1056768K)], 0.0451294 secs] [Times: user=0.05 sys=0.00, real=0.04 secs] 

は、 DefNewコレクタ。 GCログに関する記事が見つかりましたhere これに基づいて、2行目は完全なGCです。それは、若い世代、そしてメタスペースさえも集めているので、正しいと思われました。しかし、3行目には何が起こったのですか?このログエントリは完全なGCであると言いました。しかし、それは古い世代だけを収集しました。ログエントリが間違っているようです:2番目は完全なgcで、3番目は大きなgcでした。

質問があります:3行目の「フルGC」タイトルはなぜですか?

答えて

0

2行目は、実際には3行目に報告されたコレクションの一部です。 -XX:+PrintGCを使用した場合、フルGCのみとして報告されます。

gcログはJDK9で統一されます。 this comparison、これらのログ記録を説明します

関連する問題