3回复
5月前
jvm cms gc remark不会更加增加STW的时间吗?
问题1:jvm cms gc remark需要重新gcRoot+young+ old gen 卡表,不会更加增加STW的时间吗?
问题2:jvm如何判断一个对象已经被标记了? CMS remark阶段发现对象已经被标记了,是否还需要再标记?
228 阅读
问题1:jvm cms gc remark需要重新gcRoot+young+ old gen 卡表,不会更加增加STW的时间吗?
问题2:jvm如何判断一个对象已经被标记了? CMS remark阶段发现对象已经被标记了,是否还需要再标记?
问题1:重新标记本身就是需要stw的,而且存在跨带引用的话,多少也会影响一些,可以使用CMSScavengeBeforeRemark参数,用来保证Remark前强制进行一次Minor GC,减少扫描范围。
问题2:jvm内部使用三色标记来完成,分别是黑色,灰色,白色。如果扫描结束了还是白色,那么说明没有gcRoot引用,是垃圾。