補充堆中區域劃分算法
Parallel Scavenge:吞吐量優先收集器,與ParNew區別在於多了自適應調節策略併發
CMS:以獲取最短回收停頓時間爲目標的收集器,是基於標記-清除算法實現的收集器。spa
補充兩個概念:線程
並行(Parallel):指多個垃圾收集線程工做、但此時用戶線程仍然處於等待狀態。對象
併發(ConCurrent):指用戶線程與垃圾收集線程同時執行。內存
通常過程:io
一、TLAB((Thread Local Allocation Buffer))引用
二、優先堆新生代eden區並行
三、大對象進入堆老年代自適應
四、新生代GC(Minor GC)發生,存活對象則優先新生代Survivor區,若存活對象大於Survivor區,則經過擔保機制進入老年代。
1)默認新生代Eden、Survivor比例是多少?
-8:1,整個新生代包括Eden區和2個Survivor區,也就是若是新生代共10M,則Eden分配8M,2個Survivor各爲1M。
-XX:SurvivorRatio=8設置比例值。
2)新生代GC和老年代GC的有啥不同?
-新生代GC發生頻繁,速度快。
-新生代GC採用複製算法,老年代GC採用標記整理算法。
3)新生代Survivor區的對象如何進入老年代?
-Survivor存活年齡(新生代GC一次,年齡+1)大於MaxTenuringThreshold值。
-相同年齡的對象之和大於Survivor大小的一半。