3

アプリケーションで何が起こっているのかを理解しようとしています。

問題:

  • GC 呼び出しは、未使用のヒープ サイズを必要以上に削減しませんが、シリアル GC (または UseParNewGC) と積極的なヒープ比率を使用しているため、そうすべきです。

  • 使用中のプログラムのメモリは常に、現在使用されているヒープと未使用のヒープよりもはるかに大きく、私の意見では、他の JVM メモリ + ヒープが含まれていても大きすぎます。

使用するコマンド ライン:

java -XX:+UseSerialGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -Xmx2500M -cp XXXXXX.jar xxxx.xxxx.xxxx
pause

UseParNewGC で試してみたが、同じ結果

システム: Win7 SP1 4GB RAM + 4GB スワップファイル 2.99GHZ Java 1.7 + JDK 1.7

物事をより明確にするために写真を見てください: http://i.stack.imgur.com/i3sxw.jpg

4

1 に答える 1

1

比率を自由に設定するのではなく、存続期間New Generationの短いオブジェクトが停止できるサイズに設定するようにしてください。への昇格をできるだけ少なくしようとしていOld Generationます。

Young Generation大規模なものは大規模なコレクションになることに注意してください。

次に、最大値Old Generationをフルにするにはあまり時間がかからないサイズに設定しGCますが、常にそれらを実行するわけではありません。

于 2012-09-17T14:41:18.947 に答える