2013-04-17 12 views
8

これらのオプションの目的を教えてください。 はグーグル後、私は思う: MinHeapFreeRatioは と MaxHeapFreeRatio「宇宙の指定した割合は、GC後のヒープメモリに自由になるよりも、これ以上に伝えない「GCが後にスペースの最小パーセンテージは、ヒープメモリにないことが保証されます指定された」伝えます"[指定されたパーセンテージよりも過剰な空きメモリがある場合、それらのメモリはOSに返されます]-XXの目的は何ですか:MinHeapFreeRatioと-XX:MaxHeapFreeRatio

これらのオプションは、空のヒープメモリの80%以上が存在する場合でも、それはOSに戻されませんでした。

詳細: は、Java HotSpot(TM)64ビットサーバーVM(1.5.0_15-B04、混合モード)(そうでない場合は、サーバ・クラスVMのデフォルトのコレクタであるスループットコレクタとしても知られる) ParallelGC iが指定-Xms50Mそして、JVM引数 OSとして-Xmx1000M:Windows 7のプロ(8ギガバイトのメモリ64ビットOS)

注:私はあまりにもSerialGCで試してみましたが、それらの最小値と最大ヒープ無料比率オプションは無視されました。

+0

%の範囲を設定しているようですね。 'MinHeapFreeRatio = 10'と' MaxHeapFreeRatio = 90'のような値に設定するべきではありません。 –

答えて

2

Javaは、メモリをOSに戻すことはめったにありません。一般的に言えば、アプリケーションではなく、時間の経過とともにメモリを使用します。あなたは記憶がとても限られているので、これが必要ですか?あなたの常駐メモリを確認していますか?常時約1.2 GBの仮想メモリサイズではありません。

+1

はい私はVisualVMを使ってメモリ使用量を調べました。 ParallelGCはこれらのオプションを無視すると思います。「休止時間」と「スループット」の目標に基づいて、若い世代と古い世代のサイズを動的に変更するだけです。 https://blogs.oracle.com/jonthecollector/entry/it_s_not_magic –