2011-01-05 5 views
1

VisualVM 1.3を使用して、Javaプログラム(Linux 64ビットで動作)でメモリリークをデバッグしようとしています。フルGC後にOldGenの使用率が上昇する

「VisualVM Monitor」タブの「Perform GC」ボタンをクリックするたびに、Old Genメモリプールの「used」値が上がっていることに気付きました。これは逆に直感的です...

"Perform GC"が若い世代のGCをトリガーした場合(一部のオブジェクトは若い世代から古い世代に移行できるため)、完全なGCの場合はそうではありません。

誰もこれまでに遭遇したことはありますか?ありがとう。

例: 1)OldGen初期状態: がコミット

PeakUsage:1431 Mbの のinit:1431 Mbの 最大:1431 Mbの使用 :98Mb

使用 がコミット:1431 Mbの のinit:1431 Mbの 最大:1431 Mbの 使用:98Mb

2)GC

3を実行します)新しい状態:

がコミットPeakUsage:1431 Mbの のinit:1431 Mbの 最大:使用1431 Mbの : がコミット105MB

使用法:1431 Mbの のinit:1431 Mbの 最大:1431 Mbの使用 :105MB

答えて

2

完全なGCが若いgenオブジェクトの古いgenへの移行を引き起こす可能性も非常に高いようです。そうでないと考える特別な理由はありますか?

+0

もっと明確に言えば:Full GCはゴミがなければOldGenの中の何も削除しません。 – delnan

関連する問題