Young GC / Minor GC
young GC過程
幾乎所有對(duì)象都在eden區(qū)域出生哩至,當(dāng)eden區(qū)域滿了之后會(huì)進(jìn)行YoungGC躏嚎,將留下來的對(duì)象復(fù)制到to中存放,年齡+1菩貌,將Eden區(qū)域和survivor中from區(qū)域死掉的對(duì)象進(jìn)行回收卢佣,再交換from和to。
Minor GC 特點(diǎn)
1. 觸發(fā)機(jī)制:當(dāng)新生代空間不足時(shí)箭阶,就會(huì)出發(fā)Minor GC虚茶,這里的新生代滿指的是Eden區(qū)域滿,survivor滿了不會(huì)觸發(fā)(每次Minor GC 會(huì)清理新生代的內(nèi)存)
2. Minor GC 非常頻繁仇参,一般回收速度也比較快嘹叫。
3. Minor GC 會(huì)引發(fā) STW,暫停其它用戶線程诈乒,等垃圾回收結(jié)束罩扇,用戶線程才恢復(fù)運(yùn)行
Major GC、 Full GC
Major GC / Old GC:只是老年代的垃圾收集怕磨,F(xiàn)ull GC:整堆收集
1. 很多時(shí)候Major GC 會(huì)和Full GC混淆喂饥,需要具體分辨是老年代回收還是整堆回收。目前只有CMS GC會(huì)單獨(dú)收集老年代的行為癌压。
2. 目前只有G1 GC 會(huì)混合收集仰泻,即收集整個(gè)新生代以及部分老年代的垃圾收集。
Major / Full GC的特點(diǎn):
1. 出現(xiàn) Full GC 經(jīng)常會(huì)伴隨至少一次的Minor GC滩届,但非絕對(duì)(在Parallel Scavenge收集器的收集策略中就有直接進(jìn)行Full GC的策略)
2.? 在老年代空間不足的時(shí)候會(huì)先嘗試觸發(fā)Minor GC集侯。如果之后空間還不足,則出發(fā)Full GC
3. Full GC的速度一般會(huì)比Minor GC 慢很多帜消,STW時(shí)間更長
4. 如果Full GC 后棠枉,內(nèi)存還不足就會(huì)OOM
觸發(fā)機(jī)制
1. 調(diào)用System.gc()時(shí),系統(tǒng)建議執(zhí)行Full GC泡挺,但不是必然執(zhí)行
2. 老年代空間不足
3. 方法區(qū)空間不足
4. 由Ede區(qū)辈讶、from區(qū)向to中復(fù)制的時(shí)候,對(duì)象大小大于to的可用內(nèi)存娄猫,則把該對(duì)象轉(zhuǎn)存到老年代贱除,且老年代的可用內(nèi)存大小小于該對(duì)象大小