前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2020-11-30:java中,卡表和记忆集的区别?

2020-11-30:java中,卡表和记忆集的区别?

原创
作者头像
福大大架构师每日一题
修改2020-12-07 11:06:46
8230
修改2020-12-07 11:06:46
举报

福哥答案2020-12-04:

答案来自此链接:

这两个都是G1收集器中的概念

记忆集,RemeberSet,用来记录外部指向本Region的所有引用,每个Region内都会维护一个,因此G1收集器相对而言比较消耗内存的原因就在这里,它需要约5~10%的空间维护记忆集。

卡表,CardTable,专门用来记录老年代中引用了新生代对象的引用,每张Region在卡表中对应一个比特位,当老年代中的某个对象持有了新生代对象的引用时,JVM就把这个对象对应的Region标记为dirty(bit位设置为1),这样在Minor GC时就不用扫描整个老年代,而是扫描Region为Dirty对应的那些内存区域。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档