プロジェクト

全般

プロフィール

JDK 9 JavaVMオプション

関連文書:Oracle JDK8 JavaVMオプション

メモ

Java SE 9ではHotSpot Client VMが無くなるとのこと
この後、バイナリリリースから32bit版がなくなりました。小さなプログラム向きのJavaVMオプション検討を記載。

オプション指定例

小さいアプリケーション向け

64bit JavaVMのデフォルトは、計算機リソースをフルに使う設定となっています。
小さいアプリケーションや、多数のアプリケーションを動作する場合、この設定では計算機リソースを枯渇させてしまいます。

設定項目 デフォルト値 推奨値 備考
TieredStopAtLevel 4 1 TieredStopAtLevel
CompileThreshold 10,000 1,500
InitialCodeCacheSize 2,496KB 160KB
ReservedCodeCacheSize 240MB 32MB
CICompilerCount CPU数による(6コアの場合 3) 2 CICompileerCount
スタックサイズ(-Xss) 1MB 256KB
ヒープサイズ(-Xms) 物理メモリの1/64 32MB
ヒープサイズ(-Xmx) 物理メモリの1/4 256MB
シリアルGCの使用 false true

メモリ、スレッド使用状況の比較

種類 デフォルト設定 JVMオプション変更
Performance ProcExp_Performance_DefaultJVM.png ProcExp_Performance_tunedJVM.png
Threads ProcExp_Threads_DefaultJVM.png ProcExp_Threads_tunedJVM.png

チューニング前後で、使用メモリ(Windows OS上のプロセスの Private Bytes)が400MB→100MB と削減されています。
スレッドの数は、44→29と削減されています。

クリップボードから画像を追加 (サイズの上限: 1 GB)