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デフォルトのガベージコレクタ:パラレル清掃を+パラレル古いです