ホームページ  >  記事  >  Java  >  JVM メモリ管理-----ガベージ コレクター パラメーターの詳細な説明

JVM メモリ管理-----ガベージ コレクター パラメーターの詳細な説明

黄舟
黄舟オリジナル
2016-12-28 15:52:581650ブラウズ

この記事は GC に関連する最後の記事です。今回は、LZ がホットスポット JVM のガベージ コレクターに関連する主要なパラメーターと各パラメーターの説明をリストします。さっそく始めましょう。

ガベージ コレクター選択パラメーター

UseSerialGC: シリアルおよびシリアル古いコレクター (クライアント モードのデフォルト値) を使用するには、このパラメーターを有効にします。
UseParNewGC: ParNew およびシリアル古いコレクターを使用するには、このパラメーターをオンにします (推奨されません)。
UseConcMarkSoupGC: ParNew および CMS (古いシリアルが代替) コレクターを使用するには、このパラメーターをオンにします。
UseParallelGC: 並列スカベンジと並列古いコレクターを使用するには、このパラメーターをオンにします (サーバー モードのデフォルト値)。
UseParallelOldGC: 古い世代の並列古いコレクタを使用するには、このパラメータをオンにします (このパラメータは JDK1.5 以降は役に立ちません)。

各JVMメモリ領域のサイズに関連するパラメータ

Xms: ヒープの初期値。デフォルトは物理メモリの 1/64 で、最大値は 1G を超えません。
Xmx: ヒープの最大値。デフォルトは物理メモリの 1/4 で、最大値は 1G を超えません。
Xmn: 新世代のサイズ。
Xss: スレッドスタックサイズ。
PermSize: 永続世代の初期サイズ。デフォルトは物理メモリの 1/64 で、最大値は 1G を超えません。
MaxPermSize: 永続世代の最大サイズ。デフォルトは物理メモリの 1/4 で、最大値は 1G を超えません。
NewRatio: 古い世代に対する新しい世代の比率。たとえば、3 の場合、新しい世代はヒープの 1/4 を占め、古い世代は 3/4 を占めます。
SurvivorRatio: 新しい世代の Eden 領域と Survivor 領域の比率を調整します。デフォルトは 8 です。つまり、Eden 領域はサイズの 80%、2 つの Survivor 領域はそれぞれサイズの 10% です。 (注: このパラメータ設定は、レプリケーション アルゴリズムを説明する章のレプリケーション アルゴリズムのメモリが半分になるという問題を解決する方法です。レプリケーション アルゴリズムの章では、eden 領域が 80% の部分であり、survivor 領域は2 つ 10% その部分。)

ガベージ コレクターのパフォーマンスの一般パラメーター

PretenureSizeThreshold: 古い世代にプロモートされたオブジェクトのサイズ。デフォルトは0です。例えば10Mに設定すると、10Mを超えるオブジェクトはeden領域に配置されず、そのまま旧世代に入ります。
MaxTenuringThreshold: 旧世代に昇格するための最大年齢。デフォルトは 15 です。たとえば、10 に設定すると、オブジェクトは通常の GC 回数が 10 回行われた後に古い世代に配置されます。
DisableExplicitGC: System.gc() を無効にします。

並列コレクターのパラメーター

ParallelGCThreads: リサイクル中に開始されたスレッドの数。デフォルトは CPU の数と同じです。
GCTimeRatio: システムのスループットを設定します。たとえば、99 に設定すると、GC 時間比率は 1/1+99=1% となり、必要なスループットは 99% になります。それが満たされない場合、新しい世代のサイズは縮小されます。
MaxGCPauseMillis: ガベージ コレクションの最大一時停止時間を設定します。設定値が満たされない場合は、新しい世代のサイズが最初に削減されます。それでも満たされない場合は、スループットが犠牲になります。

同時コレクター パラメーター

CMSInitiatingOccupancyFraction: CMS コレクターをトリガーするメモリ比率。たとえば、60% は、メモリが 60% に達すると CMS 同時収集が開始されることを意味します。
UseCMSCompactAtFullCollection: これは前にも説明しましたが、CMS コレクターがガベージをクリーンアップするたびにメモリ デフレーションを送信するために使用されます。
CMSFullGCsBeforeCompaction: 複数の CMS ガベージ コレクションの後にメモリ圧縮をトリガーするように設定します。

結論

この記事は単なるリストであり、GC 関連のシリーズは終わりました。それでは、一緒に仮想マシンのソース コードの世界に入りましょう。

上記は JVM メモリ管理の詳細な説明です -- ガベージ コレクター パラメーター 詳細については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。