ガベージコレクションが大幅に開発の効率を向上させ、Java言語のハイライトです。
そのガベージコレクションGC、アウトメモリトリガの、JVMアルゴリズム及びメカニズムの異なるバージョンが異なっています。
私は面接の準備、李富春た、今日の質問は次のとおりです。
JVMガベージコレクションのアルゴリズムは何?どのようなガベージコレクタ?
A:JVMガベージコレクションオブジェクトのリサイクルをマークする最初の必要性、グラフアルゴリズムまで使用しています(オブジェクトから始めて、グラフオブジェクト参照を描き
、アクティブなオブジェクトから起動する場合には、到達不能オブジェクト図中です回復可能なオブジェクトを標識することができます)
JVMガベージコレクションのアルゴリズムは3を持って、次のものがあります。
1、マークスイープアルゴリズムを。(クリーンアップに直接リサイクル可能オブジェクトをマークされていること、それはメモリの断片化の問題を引き起こすではなく、効率的になります);
2、照合アルゴリズムをマーク。(これは、メモリの断片化の問題を解決するためのメモリをクリーンアップする過程を終え、クリーンアップするためにリサイクル可能なオブジェクトをマークされている);
3、複製アルゴリズムをマーク。(クリーンアップするためにマークされたオブジェクトをコピーし、何のクリーンアップのエリアへのオブジェクトの場合、メモリの断片化の問題を解決するために参照しますが、特定の価格を持って、オブジェクト・リレーショナル維持する必要スワップ)しません
共通するのは、反復が増加しているJDKのバージョンでは、以下の4つのガベージコレクタです。以下のとおりです
。1、serialGC、即ち、シングルスレッドのガベージコレクション、簡単の利点は、欠点が停止世界の問題に起因し、ガベージコレクタの以前のバージョン
2、ParallelGC、すなわちパラレルガベージコレクタ(新世代、シーンのスループットを比較するための老齢並行して収集された);
3、CMSGC、優先応答時間のガベージコレクタは、Webアプリケーションのために、メモリの断片化の問題を提起します。
4、G1GCは、アカウントに応答時間を取って、メモリの統合のためのスループットガベージコレクタは、ボードの道をゾーニングしている、それはデフォルトのガベージコレクタのjava8です。
ガベージコレクションプロセス
主に二つの領域におけるごみ:Java仮想マシンのメモリモデルに応じて、すなわちヒープ、メソッド領域メタデータ領域。
ガベージコレクションプロセスのヒープ領域を次のように
図1に示すように、オブジェクトがエデン領域の新世代のヒープ上に作成されます。
図2に示すように、時間または周期的トリガminorGC、生存する対象領域のマークされていないコピーのメモリは、マークされたオブジェクトは直接回収しました。
3、ライフサイクルJVM連続サイクルで:トリガーminorGC、サービスエリアは、エリアから変換され、常にコピーエデンやエリアからエリアへのオブジェクトがある、
と断片化を防ぐために整理し、JVM以上のライフサイクル古いの古い地区によってしきい値セットにオブジェクトをコピーします。
4、とき本当にメモリのうちヒープは、fullGCをトリガ、再配置エデン、古い地区、へ、から、一般的にシステム容量急速な低下になります。
メタデータのガベージコレクションエリア:主にするときのメタデータ領域から降ろさなくなった、使用中の特定の種類、。
概要
Benpianは、ガベージコレクション、ガベージコレクションのアルゴリズム、共通ガベージコレクタ、ガベージコレクション処理のアルゴリズムをマーキング答えました。
元は容易ではない、ソースを明記してください。