2.垃圾回收概述
2.1.垃圾回收算法
2.1.1.垃圾回收算法-标記清除算法
2.1.2.垃圾回收算法–複制算法
2.1.3.垃圾回收算法–标記整理算法和分代收集算法
2.1.4.垃圾回收算法–Serial收集器詳解
2.1.5.垃圾回收算法–Parnew收集器詳解
2.1.6.垃圾回收算法–Parallel收集器詳解
2.1.7.垃圾回收算法–CMS收集器詳解
2.1.8.最牛的垃圾回收集器–g1收集器詳解
2.垃圾回收概述
對象什麼時候才能變成垃圾。
如何判定對象為垃圾對象。
關于垃圾回收的三個問題:
分代收集算法。
2.1.垃圾回收算法
2.1.1.垃圾回收算法-标記清除算法
問題:效率問題
2.1.2.垃圾回收算法–複制算法
新生代裡面的三個區域的用途。
記憶體占比:
複制算法主要針對新生代的算法。針對老年代,效率很低。
2.1.3.垃圾回收算法–标記整理算法和分代收集算法
主要針對老年代的。
針對:頻率不高,很少的情況。
讓回收的,往右。
分代收集算法:根據新生代和老年代采用不同的算法。
2.1.4.垃圾回收算法–Serial收集器詳解
2.1.5.垃圾回收算法–Parnew收集器詳解
多個線程去收集垃圾
2.1.6.垃圾回收算法–Parallel收集器詳解
上圖中的下面兩個參數為了”控制吞吐量”。
都是多線程收集器
為了降低中間的那段時間。
吞吐量:CPU用于運作使用者代碼的時間與CPU消耗的總時間桌面。
2.1.7.垃圾回收算法–CMS收集器詳解
标記清除算法
記憶體碎片。
性能非常低。
老年代收集器。
CMS是一個并發收集器
CMS的關注點也主要是
工作過程是:
初始标記:
引用計數法。
可達性分析法。
缺點:
1、占用大量的CPU資源
2.1.8.最牛的垃圾回收集器–g1收集器詳解
優勢:
1、并行與并發
2、分代收集
3、空間整合
4、可預測的停頓
步驟:
1、初始标記(并行的)
2、并發标記
3、最終标記
4、篩選回收
查找什麼是Remember set
通過一張表的方式。