为什么g1能用remembered set避免全堆扫描?

求解惑哇!查了半天也没弄明白😂#技术栈#
全部评论
我猜测是每次扫描以remembered set为准,有东西就扫,没东西就跳过这个region,检查下一个😂
点赞 回复 分享
发布于 2019-07-31 21:15
在gc时,其它不会被回收的region中的引用也可以作为gc roots(root set)的一部分。比如如果不用rst的话,进行young gc时需要扫描整个老年代进行可达性分析(因为老年代中对应的region不需要回收,可以作为gc roots 的一部分)  如果用rst的话,由于当前region的rst维护了其它region(这里指的是老年代中对应的region)对于当前region的引用信息,所以不必扫描整个老年代。 因为老年代相对年轻代较大,也可以理解为 “整个堆”。总体就是空间换时间的思路吧参考链接https://www.zhihu.com/question/62277180/answer/196715976
点赞 回复 分享
发布于 2019-07-31 23:55

相关推荐

11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务