在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 關(guān)于gc回收中的CMS算法的問題

關(guān)于gc回收中的CMS算法的問題

https://www.cnblogs.com/ggjuc...

這篇文章說:

1 CMS是不會整理堆碎片的,因此為了防止堆碎片引起full gc,通過會開啟CMS階段進行合并碎片選項:

這意思是在CMS進行full gc后,如果有碎片又會引起新的full gc嗎?

2 開啟-XX:+CMSScavengeBeforeRemark選項,強制remark之前開始一次minor gc,減少remark的暫停時間

為何強制minor gc會減少remark暫停時間?

回答
編輯回答
情已空

應(yīng)該說碎片不是Full GC的直接原因, 內(nèi)存不夠才是. 碎片造成連續(xù)內(nèi)存空間變少, 如果需要分配新的連續(xù)大塊內(nèi)存, 則會觸發(fā)Full GC.

強制minor gc會減少remark暫停時間: 能回收的已經(jīng)回收掉了, 自然不用再remark了.

2018年2月5日 17:02
編輯回答
蟲児飛

問題二,在remark階段,需要標(biāo)記出活著的老年代對象。
存在被新生代對象引用的老年代對象,如果新生代對象很多,掃描過程耗時自然很長。
如果先執(zhí)行一次ygc,gc掉無用的年輕代對象,掃描過程自然就變快了。

2017年7月24日 10:55