GC算法与收集器
一.判斷對象是否存活
1.引用計數算法
2.可達性分析算法
二.垃圾收集算法
1.標記-清除算法:效率低,內存碎片
2.復制算法:適用于對象存活率低
3.標記-整理算法:沒有內存碎片
4.分代收集算法:新生代用復制算法
? ? ? ? ? ? ? ? ? ? ? ? ? ? 老年代用標記-清除/整理算法
三.HotSpot算法實現
1.枚舉根節點
2.安全點:線程run狀態
3.安全區域:線程sleep/blocked狀態
四.垃圾收集器
1.Serial收集器:單線程,暫停其它線程
2.ParNew收集器:Serial收集器的多線程版
3.Parallel Scavenge收集器:吞吐量優先,自適應調節策略
4.Serial Old收集器:Serial收集器的老年代版本
5.Parellel Old收集器:Parallel Scavenge收集器的老年代版本
6.CMS收集器:
目標:獲取最短回收停頓時間
算法:基于標記-清除。初始標記(Stop The World,耗時短)——>并發標記(與用戶線程并發,耗時長)——>重新標記(Stop The World,耗時短)——>并發清除(與用戶線程并發,耗時長)
缺點:I.對cpu資源敏感;II.無法處理浮動垃圾;III.基于標記-清除算法,收集結束后會有大量空間碎片產生。
7.G1收集器
特點:I.并行與并發;II.分代收集;III.空間整合;IV.可預測的停頓。
思路:化整為零,分為多個Region,Region直接建立Remembered Set。
初始標記(Stop The World,耗時短)——>并發標記(與用戶線程并發,耗時長)——>重新標記(Stop The World,gc線程間并行執行,耗時短)——>篩選回收(可以做到與用戶線程并發,耗時長)
轉載于:https://www.cnblogs.com/xiehuazhen/p/10102679.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 全网最全清理c盘大全
- 下一篇: (二)蜂鸣器