ガベージコレクタ間のリンクは、この論文では、古いのコレクターを説明します。
シリアル・オールド・コレクタ(-XX:+ UseSerialOldGC、マーク - 照合アルゴリズム)
シリアルGCのバージョンは、すべてのワーカースレッドを一時停止する時間でなければならないシングルスレッドのガベージコレクションで、古い同じであるシンプルかつ効率的な、クライアント・モード、古い歳未満のデフォルトのガベージコレクタです。
パラレルオールド・コレクタ(-XX:+ UseParallelOldGC、マーク - 照合アルゴリズム)
JDK6は、シリアル旧比較的シリアルオールド・コレクタの前にコレクタは、ガベージコレクタの後に登場し、マルチスレッドおよびスループット優先の原則とされています。
CMSコレクタ(-XX:+ UseConcMarkSweepGCを、マーク - スイープアルゴリズム)
このガベージコレクタはほぼ同時に、ユーザーのスレッドを動作すること。
マーク - 次のステップに分けスイープ:
- 初期ラベル:STOP-世界。
- 並行マーク:同時遡及マーク、プログラムが停止しません。
- 同時予備洗浄:コンカレントマーキング段階を実行するためのオブジェクトを探すには、古い時代に、若い世代から昇格しました。
- ラベル変更:残りのターゲットCMSヒープをスキャンし、仮想マシンを一時停止します。
- 同時クリーニング:ゴミオブジェクトをクリーンアップすると、プログラムが停止しません。
- 同時リセット:データ構造CMSコレクタをリセットします。
ごみのスナップショットに応じて時間の始まりをマークし、再びクリアされ、それが新たなゴミを生産し、同時ユーザーのスレッドが実行リフレッシュしたら、欠点はマークの使用である-スイープアルゴリズムは、メモリの断片化が生成されます、リスクOOMがあります。
G1コレクタ(-XX:+ UseG1GC、コピー+マーク - 照合アルゴリズム)
このガベージコレクタは、古いものと新しい世代のために適しており、他の古いガベージコレクタは比較次の特性があります。
- 平行と並行:CPU、複数の停止世界の停止時間を短縮するために使用される、同時に実行するマルチスレッド。
- 世代別コレクション:いくつかの時間のために使用ゴミや廃棄物発電のうち、新しく作成されたオブジェクトに対処するためのさまざまな方法が生成オブジェクト。
- 空間の統合:タグでメモリの断片化の問題を解決するために整理します。
- 予測可能なポーズ:設定時間を超えない、GC上で消費ユーザ指名時間。
このガベージコレクタの全体を使用した後のJavaヒープメモリは同じサイズ地域、古いものと新しい世代の物理的に分離されていない複数に分割されています。
あなたは、古い時代の新しい世代であるかを決定することである連続したメモリ空間を必要としません。