关注
三、为什么2个 Survivor 空间可以达到要求?
问题很清楚了,无论 Eden 和 Survivor 的比例怎么设置,在只有一个 Survivor 的情况下,总体上看在新生代空间满一半的时候就会触发一次 Minor GC 。那有没有提升的空间呢?比如说永远在新生代空间满 80% 的时候才触发 Minor GC ?
事实上是可以做到的:我们可以设两个 Survivor 空间( From Survivor 和 To Survivor )。比如,我们把 Eden : From Survivor : To Survivor 空间大小设成 8 : 1 : 1 ,对象总是在 Eden 区出生, From Survivor 保存当前的幸存对象, To Survivor 为空。一次 gc 发生后:
1)Eden 区活着的对象 + From Survivor 存储的对象被复制到 To Survivor ;
2) 清空 Eden 和 From Survivor ;
3) 颠倒 From Survivor 和 To Survivor 的逻辑关系: From 变 To , To 变 From 。
可以看出,只有在 Eden 空间快满的时候才会触发 Minor GC 。而 Eden 空间占新生代的绝大部分,所以 Minor GC 的频率得以降低。当然,使用两个 Survivor 这种方式我们也付出了一定的代价,如 10% 的空间浪费、复制对象的开销等。
查看原帖
4 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的付费上班经历 #
1575次浏览 35人参与
# 如果不上班,你会去做什么 #
839次浏览 33人参与
# MiniMax求职进展汇总 #
1116次浏览 24人参与
# 参加哪些竞赛对找工作有帮助? #
1042次浏览 19人参与
# 工作压力大,你会干什么? #
732次浏览 29人参与
# 简历第一个项目做什么 #
571次浏览 15人参与
# 职场新人体验 #
159821次浏览 1137人参与
# 拿到offer之后,可以做些什么 #
84141次浏览 438人参与
# 硬件/芯片公司工作体验 #
142237次浏览 945人参与
# 你们的毕业论文什么进度了 #
1234649次浏览 9908人参与
# 你觉得面试是靠实力还是靠运气 #
27238次浏览 303人参与
# 生物制药/化工校招攻略 #
72918次浏览 338人参与
# 牛客十周岁生日快乐 #
203923次浏览 1914人参与
# 哪些公司在招寒假实习? #
23884次浏览 340人参与
# 这些公司卡简历很严格 #
84229次浏览 379人参与
# 聊聊你的职场新体验 #
311212次浏览 1842人参与
# 当你面对裁员会如何? #
352880次浏览 2856人参与
# 秋招开了,你想投哪些公司呢 #
968112次浏览 11391人参与
# 招聘要求与实际实习内容不符怎么办 #
150021次浏览 891人参与
# 快手工作体验 #
296679次浏览 2896人参与
# 工作后明白的那些道理 #
52631次浏览 857人参与

