g1为何没有浮动垃圾问题

暗中观察 发布于 2019/04/26 07:59
阅读 2K+
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

g1收集器的运作流程是,

初始标记

并发标记

最终标记

筛选回收

《深入》这本书也说了“最终标记是对并发标记期间因用户程序继续运作而导致标记产生变动的一部分标记记录。”这样不就跟cms的重新标记的效果是一样的吗?为何从没听说过g1有浮动垃圾问题呢?

参考:https://segmentfault.com/q/1010000013653267/a-1020000013656487

加载中
0
暗中观察
暗中观察

浮动垃圾 是cms在并发标记时,用户线程所产生的垃圾;而cms在重新标记阶段是对原来并发标记那部分数据的补正,而没有补正在并发标记时,用户线程所产生的垃圾

0
暗中观察
暗中观察

而g1的重新标记是对用户线程产生的垃圾对象进行标记。从而消除在并发标记阶段用户线程所产生的垃圾,所以g1没用浮动垃圾问题。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部