G1收集器的GC Root跟Root RegionScan 以及RememberSet作用
扛枪蚂蚁 2019-06-15 08:04:18 GC Root的作用是Root Scan,根扫描应该能扫描到所有的对象,这些对象分布在新老代这个我能理解
1 G1 初始化标记后为什么要弄一个Root RegionScan呢,网上的资料不是特别的理解
2 RememberSet
RememberSet的作用是维护跨分区的引用,RootScan本身就能扫描到所有的分区引用,为什么还要用RememberSet呢,
小编查了很多资料都没有靠谱的解释,深入理解JVM里也没有合理的解释,只是几句话就带过了,大佬们有思考过这个问题么。
有一篇文章倒是稍微描述了下,说是年轻带代回收的时候不需要去扫描老年代,使用RememberSet就可以不去扫描老年代,将Rset中维护的
对象加入Root对象进行scan
小编的疑惑是
从GC ROOT对象出发的话深度搜索到老年代的对象怎么处理,是直接跳过不进行标记,本次scan中断,然后从Rset中找到老年代的对象去进行追踪?
希望有大佬能解惑