性能问答>jvm cms gc remark不会更加增加STW的时间吗?>
3回复

jvm cms gc remark不会更加增加STW的时间吗?



问题1:jvm cms gc remark需要重新gcRoot+young+ old gen 卡表,不会更加增加STW的时间吗?

问题2:jvm如何判断一个对象已经被标记了? CMS remark阶段发现对象已经被标记了,是否还需要再标记?

228 阅读
请先登录,再评论

问题1:重新标记本身就是需要stw的,而且存在跨带引用的话,多少也会影响一些,可以使用CMSScavengeBeforeRemark参数,用来保证Remark前强制进行一次Minor GC,减少扫描范围。

问题2:jvm内部使用三色标记来完成,分别是黑色,灰色,白色。如果扫描结束了还是白色,那么说明没有gcRoot引用,是垃圾。

14月前
回复 2006_1102568:

额,其实三色标记主要是帮助我们更好的理解gc算法而提出的概念,jvm内部也是通过各种数据结构和判断来完成的,颜色信息在对象信息里没有体现的,也不存在对象头中,这是我的理解,也不一定准确,你借鉴一下。

4月前回复
回复 小邋遢:

对象的颜色是用什么数据结构保存的

4月前回复