GCの基礎

1.何がゴミであります

オブジェクトまたはオブジェクトの複数への参照なし(循環参照)

ゴミを見つける方法2

参照カウント(循環参照を解決しません)

アルゴリズムアップルート(ルートオブジェクトがガベージあるオブジェクトによって発見することはできません)

ルートオブジェクト:スレッドスタック変数、JNIへの定数プール参照変数とポインタのクラスに静的変数

3.一般的なガベージコレクションアルゴリズム

マークスイープ(フラグクリア):不連続位置、フラグメンテーション

コピー(コピー):破片の自由、スペースの無駄

マーク・コンパクト(マーク圧縮):なし、断片化、低効率

(世代別ガベージコレクションアルゴリズムのための)4.JVM世代メモリモデル

1.ガベージコレクタ部によって使用されるモデル

2.新生代+ +歳と永久世代(1.7)/メタデータ領域のメタスペース(1.8)

永久世代差メタデータ領域:

Classオブジェクトがロードされています

あなたは制限の恒久的な世代のサイズを指定する必要があります。メタデータ領域が設けられていてもよい、(物理メモリによって制限される)制限なしに、設けられていなくてもよいです

1.7での文字列定数はヒープ上に永久世代、1.8に保存されています

3.新しい世代領域=エデン生存領域+2

    1.YGC回復した後、オブジェクトのほとんどは、アルゴリズムが進行生存者ゾーン使用して生きているのコピーを回復することになる(S0)

    2. YGCは再び、生きているオブジェクトエデン+ S0 - > S1を入力します。

    3. YGCは再び、生きているオブジェクトエデン+ S1 - > S0を入力します。

    4.古い十分 - >歳入力します

    5.sエリアフィット - >歳

4歳

    旧長年のフルFGCをトリガーします(フルGC)

5.GCチューニング(世代アルゴリズム)

    FGCを最小限に抑える1

MinorGC = CVL

MajorGC = FGC

5.一般的なガベージコレクタ

1.Serial:シリアルは、シングルスレッド(新世代)、回収しました

2.Parallel清掃を:パラレル・リカバリ、複数のスレッド(新世代)

3.ParNew:CMSの回復と並行して(新世代)

4.Serial旧(歳)

5.Parallel旧(歳)

6.CMS(ConcurrentMarkSweep)(歳)

JDK1.8デフォルトのガベージコレクタ:パラレル清掃を+パラレル古いです

 

发布了48 篇原创文章 · 获赞 1 · 访问量 2819

おすすめ

転載: blog.csdn.net/Forest24/article/details/102649268