JVM学習(7)-G1ガベージコレクタの紹介

A.ブリーフ

文書の公式の説明:

ガベージ・ファースト(G1)コレクタは、大きなメモリを有するマルチプロセッサ・マシンを対象サーバスタイルのガベージコレクタです。高いスループットを達成しながらそれは、高い確率で、ガーベッジコレクション(GC)の休止時間の目標を満たしています。G1ガベージコレクタは、完全にOracleのJDK 7更新4およびそれ以降のリリースでサポートされています。G1のコレクタは、そのアプリケーションのために設計されています。

CMSコレクタなどのアプリケーションスレッドで同時に動作することができます。
長いGC誘発一時停止時間のないコンパクトなフリースペース。
より予測可能なGCの一時停止期間を必要とします。
スループット性能の多くを犠牲にしたくありません。
はるかに大きなJavaヒープを必要としないでください。

G1は、並行マークスイープコレクター(CMS)のための長期的な代替として計画されています。CMSとG1を比較すると、メイクG1より良い解決策という違いがあります。一つの違いは、G1が圧縮コレクタであることです。G1は完全割り当てのためにきめ細かい空きリストの使用を避けるために十分に圧縮し、代わりに地域に依存しています。これはかなりコレクタの部品を簡素化し、主に潜在的な断片化の問題を解消します。また、G1の提供CMSコレクタより予測可能なガベージコレクションの一時停止、とは、ユーザーが希望のポーズターゲットを指定することができます。

図から分かるように、ごみ初ガベージコレクタであるG1ガベージコレクタは、JDK7後長期サポートCMSガベージコレクタの代替として使用され、それが利点を見ることです。

  1. 同時マルチコアプロセッサマシン
  2. CMSに関してはスペースデブリとゴミのクリーンアップ時間を短縮することができます
  3. ごみの時間が予測可能となり作ることができます
  4. これは、スループットの大幅な損失が発生することはありません
  5. これは、より大きなJavaヒープを必要としません。

CMSとG1の相対は、次のような利点があります。

  1. それはあまりにも多くのメモリスペースデブリを持っていません。
  2. 代わりに分かれ、古い時代の新しい時代を使用しての領域面積
  3. CMSは、古いリサイクルのためだし、最優先課題として、ガベージコレクションにリサイクルするための空間全体のG1
  4. あなたは、予測可能なガベージコレクションの時間を設定することができます

G1ガベージコレクタ9がJDKデフォルトガベージコレクタするために設けられています。低レベルのJDKのバージョンでは、次のことができます。-XX:+UseG1GCパラメータは、G1のガベージコレクタを有効にします。

II。ガベージコレクションの面積変化

一般的には、古いシリアル、ParNew、CMSや他のガベージコレクタのガベージコレクションプロセスとしてガベージコレクタは、Javaヒープ、古い、それは3つの領域だと回復に供した恒久的な世代の新しい世代に分けられます
ここに画像を挿入説明
が、 G1ガベージコレクタは、ゾーニングの異なる形態を使用し、それは同じ大きさの連続空間にJavaヒープメモリであろうと、識別された各空間異なる色と文字になっており、例えば、E(エデン)、O (旧)、S(Servivor)などが挙げられます:
ここに画像を挿入説明

III。予測時間以内にガベージコレクションの完了を確実にする方法

G1のガベージコレクションのモデルが予測を確立し、それが最大の地域の回復値の領域を回復する失われたために優先順位リストによると、回復各領域の値とどのくらいの空き領域のサイズを追跡することによって回復値のリストを保持します

G1は、領域が回収される必要があるかを示すためにグローバル識別子を使用して、この範囲内の領域のための空き領域が大量に直ちにそのメモリの断片化の速度が低下ので、リサイクルのために回収し、到達される領域の範囲ゴールG1。ポーズ時間ガベージコレクションプロセスはように制御可能とされ

IV。ガベージコレクション処理

ここに画像を挿入説明

同様のガベージコレクションプロセスとCMSガベージコレクタG1ガベージコレクタは、に分けることができ初始标记兵法标记重新标记及び筛选回收これらの四つの段階、これ并发标记筛选回收付随するユーザスレッド一緒に、無STW。

1.初期マーカー

STW、マーキングGCのROOTSは、オブジェクトに関連していません。これは非常に少し時間がかかります。

2.並行マーク

ユーザスレッドと同時に実行、取得GCのROOTSの最初のマークはオブジェクトトラッキング、オブジェクトを発見し、リサイクル対象物を回収する必要がする必要はありません。最も長い時間を持ちます。

3.再マーク

STWは、このステップは、生成オブジェクトをリサイクルし、新しいユーザーのスレッドに並行マークでマークすることです。短い時間では。

4.フィルターのリサイクル

同時に、地域の復興のための予想復旧時間の総合的な分析を介してユーザスレッド、地域の回収可能価額一覧とフィルタを実行してリサイクル、コピーアルゴリズムを使用して予測回復時間を持つユーザーオフ。ここでは、ユーザが設定した最大のかかるガベージコレクション時間は、できる-XX:MaxGCPauseMillis=parseMIllsセットも。

感謝

  1. https://www.breakyizhan.com/javamianshiti/2861.html
  2. https://www.oracle.com/technetwork/tutorials/tutorials-1876574.html#t2
309元記事公開 ウォンの賞賛205 ビューに30万+を

おすすめ

転載: blog.csdn.net/pbrlovejava/article/details/103746330