2

必要な起動パラメーターを追加するのを忘れたため、Eclipse3.6開発ランタイムでPermGenOOMを取得しました。他に何か問題があると思ったので気付く前に、JVisualVMを起動して、次のスクリーンショットを取得しました。

OOM Permgen

使用量はサイズとほぼ同じですが、最大値はまだ少し大きくなっています。使用済みがサイズではなく最大に近づいている場合は、OOMを期待します。私が持っている唯一の漠然とした説明は、JVMが最大よりも大きい使用済みスペースの2倍を割り当てようとしているということです。それでもコメントはありがたいです。

4

1 に答える 1

0

答えは正しいです。PermGen は、若いジェネレーションと古いジェネレーションから独立して設定されます。Max はそれらすべての合計です。ここにそれに関する記事があり ます http://www.freshblurbs.com/explaining-java-lang-outofmemoryerror-permgen-space

jdk の PermGen のデフォルトの最大値は 64 MG です。permGen を入れるのを忘れた場合、最大 64 MG になります。

ここにコピーした写真は 59 MG で、ほぼ満杯です。これは、permGen の最大値が 64 MG であることを示すもう 1 つの指標です。

-XX:MaxPermSize は既に変更されていると思います

于 2012-08-16T02:41:08.127 に答える