eclipse.ini の JVM パラメータを最適化してみた。
スポンサーリンク
PC のメモリの空き容量が不足気味なので、一番メモリを喰っている Eclipse のヒープメモリを調整してみた。
最適化前のパラメータとヒープメモリの推移:
-Xms40m
-Xmx1024m
-XX:MaxPermSize=256m
最適化後のパラメータとヒープメモリの推移:
-Xms40m
-Xmx1024m
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseParNewGC
-XX:NewRatio=4
-XX:SurvivorRatio=8
-XX:MaxTenuringThreshold=32
-XX:TargetSurvivorRatio=90
-XX:MinHeapFreeRatio=25
-XX:MaxHeapFreeRatio=50
-XX:MaxPermSize=256m
画像は Eclipse を起動してから5分後までの JVisualVM のスナップショット。
MaxPermSize=256m はパーマネント領域用のパラメータなので関係ないけど参考までに。
ヒープメモリのサイズが、最適化前は 551MB だったのが、最適化後は 268MB と半分以下になった。
MinHeapFreeRatio や MaxHeapFreeRatio あたりをイジると、目に見えてヒープメモリのサイズが変わる。
もう少し頑張ってチューニングしたいけど、当初の目的は達成できたので、ひとまずここまで。
ちなみに以下のコマンドを実行すると、JVM パラメータの初期値が分かる。
java -XX:+PrintFlagsFinal -version
参考資料:
- Tuning Garbage Collection
- チューニングのためのJava VM講座(後編):ガベージコレクタの仕組みを理解する (1/2) - @IT (2004/4/2)
- チューニングのためのJava VM講座(後編):ガベージコレクタの仕組みを理解する (2/2) - @IT (2004/4/2)
- Java 入門 | Garbage Collection (2004/5/27)
- Javaパフォーマンスチューニング(3):Javaのヒープ・メモリ管理の仕組み (1/2) - @IT (2005/4/2)
- Javaパフォーマンスチューニング(3):Javaのヒープ・メモリ管理の仕組み (2/2) - @IT (2005/4/2)
- 現場から学ぶWebアプリ開発のトラブルハック(2):“Stop the World”を防ぐコンカレントGCとは? (1/2) - @IT (2007/4/24)
- 現場から学ぶWebアプリ開発のトラブルハック(2):“Stop the World”を防ぐコンカレントGCとは? (2/2) - @IT (2007/4/24)
- Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か (2009/2/18)
- Java Review:“Don’t”Stop the World――Full GCへの対策 (1/3) - ITmedia エンタープライズ (2009/6/10)
- Java Review:“Don’t”Stop the World――Full GCへの対策 (2/3) - ITmedia エンタープライズ (2009/6/10)
- Java Review:“Don’t”Stop the World――Full GCへの対策 (3/3) - ITmedia エンタープライズ (2009/6/10)
- ise0615 blog: JAVAヒープサイズ・GCチューニングのまとめ (2010/6/16)
- memory management - Is there a way to lower Java heap when not in use? - Stack Overflow (2011/2/10)
- HotSpot JVMの最適化オプションについて調べる - terazzoの日記 (2011/2/25)
- GCとキャッシュの悩ましい関係 | DAブログ (2012/3/1)
- オンラインマニュアル ページ移転のお知らせ:ミドルウェア:ソフトウェア:日立 (?)
- オンラインマニュアル ページ移転のお知らせ:ミドルウェア:ソフトウェア:日立 (?)