JAva面接-ごみ回収器あなたの理解について話します
3400 ワード
一、ゴミ回収アルゴリズム:引用数 コピーアルゴリズム マーク-クリア マーク-整理 二、ごみの回収方法:
シリアル(Serial)、パラレル(Parallel)、コンカレント(CMS)、G 1
1、シリアルゴミ回収器(Serial)単一スレッド環境のために設計されており、1つのスレッドのみでゴミ回収が行われているため、すべてのユーザスレッドが一時停止するため、サーバ環境に適していない.
2、並行ゴミ回収器(Parallel)複数のゴミ収集スレッドが並行して動作している場合、ユーザスレッドは一時停止し、科学計算、ビッグデータ処理などの弱いインタラクションシーンに使用される.
3、同時ごみ回収器(CMS)ユーザースレッドとゴミ収集スレッドが同時に実行される(必ずしも並列ではなく、交互に実行される可能性がある)ため、ユーザースレッドを停止する必要がなく、インターネット会社が多く利用し、時間に応じて必要なシーンを適用する.
4、G 1ゴミ回収器G 1ゴミ回収器は、スタックメモリを別の領域に分割して並行してゴミ回収を行う.
三、デフォルトのゴミ収集器をどのように表示しますか?
四、デフォルトのゴミ収集器はどれらがありますか?
UseSerialGC,UseParallelGC,UseConcMarkSweepGC,UseParNewGC,UseParallelOldGC,UseG1G
五、ゴミ収集器
Java 8以降はほとんどSerial Oldを使用しません
新世代コレクターを配置すると、古い世代のコレクターが自動的に配置されます.新生代 シリアルGC(Serial) パラレルGC(ParNew):配置-XX:+UseParNewGC、新生代パラレル、旧世代シリアル 並行回収GC(Parallel Scavenge): シリアルコレクタは新生代と旧年代の並列化、配置-XX:+UseParallelGC、新生代、旧年代ともに並列化
制御可能なスループット
てきおうちょうせいポリシー旧世代 シリアルGC(Serial Old) パラレルGC(Parallel Old) 同時マーキングクリアGC(CMS) 利点:同時収集停止が低い 短所:CPUリソースに対する同時実行の圧力が大きく、採用したマーキングクリアアルゴリズムにより大量の破片が発生する
構成パラメータ
新生代ごみ収集器
新生代ごみ収集アルゴリズム
古い時代のごみ収集器
古い年代のごみ収集アルゴリズム
-XX:+UseSerialGC
Serial
アルゴリズムのコピー
Serial Old
タグ→整理アルゴリズム
-XX:+UseParNewGC
ParNew
アルゴリズムのコピー
Serial Old
タグ→整理アルゴリズム
-XX:+UseParallelGC
Parallel Scavenge
アルゴリズムのコピー
Parallel Old
タグ→整理アルゴリズム
-XX:+UseParalleOldlGC
Parallel Scavenge
アルゴリズムのコピー
Parallel Old
タグ→整理アルゴリズム
-XX:+UseConcMarkSweepGC
ParNew
アルゴリズムのコピー
CMS+Serial Old
タグ-パージアルゴリズム
-XX:+UseG1GC
G 1は全体としてタグ整理アルゴリズムを採用する
ローカルはアルゴリズムをコピーすることでメモリフラグメントは発生しません
コード検証:
六、ごみ収集器の選択方法シングルCPUまたはミニメモリ、シングルプログラム:-XX:UseSerialGC マルチCPUは、バックグラウンドコンピューティング型アプリケーション:-X:UseParallelGCまたは-X:UseParallelOldGCなどの最大スループットが必要 マルチCPUは低停止時間を求めており、インターネットアプリケーション:-XX:+UseConcMarkSweepGC
転載先:https://www.cnblogs.com/wjh123/p/11144320.html
シリアル(Serial)、パラレル(Parallel)、コンカレント(CMS)、G 1
1、シリアルゴミ回収器(Serial)
2、並行ゴミ回収器(Parallel)
3、同時ごみ回収器(CMS)
4、G 1ゴミ回収器
三、デフォルトのゴミ収集器をどのように表示しますか?
java -XX:+PrintCommandLineFlags -version
四、デフォルトのゴミ収集器はどれらがありますか?
UseSerialGC,UseParallelGC,UseConcMarkSweepGC,UseParNewGC,UseParallelOldGC,UseG1G
五、ゴミ収集器
Java 8以降はほとんどSerial Oldを使用しません
新世代コレクターを配置すると、古い世代のコレクターが自動的に配置されます.
制御可能なスループット
てきおうちょうせいポリシー
構成パラメータ
新生代ごみ収集器
新生代ごみ収集アルゴリズム
古い時代のごみ収集器
古い年代のごみ収集アルゴリズム
-XX:+UseSerialGC
Serial
アルゴリズムのコピー
Serial Old
タグ→整理アルゴリズム
-XX:+UseParNewGC
ParNew
アルゴリズムのコピー
Serial Old
タグ→整理アルゴリズム
-XX:+UseParallelGC
Parallel Scavenge
アルゴリズムのコピー
Parallel Old
タグ→整理アルゴリズム
-XX:+UseParalleOldlGC
Parallel Scavenge
アルゴリズムのコピー
Parallel Old
タグ→整理アルゴリズム
-XX:+UseConcMarkSweepGC
ParNew
アルゴリズムのコピー
CMS+Serial Old
タグ-パージアルゴリズム
-XX:+UseG1GC
G 1は全体としてタグ整理アルゴリズムを採用する
ローカルはアルゴリズムをコピーすることでメモリフラグメントは発生しません
コード検証:
/**
* 1、-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseSerialGC (DefNew+Tenured)
*
* 2、-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseParNewGC (ParNew+Tenured)java8
* Java HotSpot(TM) 64-Bit Server VM warning: Using the ParNew young collector with the Serial old collector
* is deprecated and will likely be removed in a future release
*
* 3、-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseParallelGC (PSYoungGen+ParOldGen)
*
* 4、-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseParallelOldGC (PSYoungGen+ParOldGen)
*
* 5、-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseConcMarkSweepGC (ParNew+CMS)
*
* :CMS Initial Mark
* ( ):CMS-concurrent-mark
* :CMS Final Remark
* ( ):CMS-concurrent-sweep
*/
public class GCoverheadDemo {
public static void main(String[] args) {
int i = 0;
List list = new ArrayList<>();
while (true) {
list.add(String.valueOf(++i).intern());
}
}
}
六、ごみ収集器の選択方法
転載先:https://www.cnblogs.com/wjh123/p/11144320.html