一集侯、工作過程
初始標(biāo)記->并發(fā)標(biāo)記->重新標(biāo)記->并發(fā)清理
工作過程
介紹:并發(fā)gc垃圾收集器养筒,gc算法是標(biāo)記清除砌函,工作在老年代
優(yōu)點:并發(fā)收集斩披,低停頓
缺點:占用cpu資源,無法處理浮動垃圾讹俊,出現(xiàn)Concurrent Mode Failure垦沉,空間碎片
二、cms收集詳解
cms收集過程如下:
初始標(biāo)記:這一步作用是標(biāo)記存活的對象仍劈,有兩部分:
1.標(biāo)志老年代中所有GC roots對象厕倍,如下圖節(jié)點1;
2.標(biāo)記年輕代中活著的對象引用到的老年代的對象贩疙,如下圖節(jié)點2讹弯、3;
初始標(biāo)記
并發(fā)標(biāo)記:從“初始標(biāo)記”階段標(biāo)記的對象開始找出所有存活的對象(由于并發(fā)標(biāo)記和用戶線程是并發(fā)工作的这溅,這個階段也會產(chǎn)生垃圾组民,所有存在某些存活的對象沒有標(biāo)記上);
并發(fā)標(biāo)記
預(yù)清理階段:這個階段就是用來標(biāo)記前一個階段因為引用關(guān)系改變導(dǎo)致沒有標(biāo)記到的存活的對象(目的就是把前階段的丟的垃圾標(biāo)記悲靴,相當(dāng)于標(biāo)記臟數(shù)據(jù))臭胜,目的是為了讓重新標(biāo)記階段STW(stop the world)盡可能短。
預(yù)清理
重新標(biāo)記:該階段的任務(wù)是完成標(biāo)記整個老年代的所有存活對象癞尚。
并發(fā)清理:這個階段主要是清除那些沒有標(biāo)記的對象并且回收空間耸三。