关注
三、为什么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 评论
相关推荐
06-05 14:51
大连理工大学 前端工程师 
点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-06 17:26
河南理工大学 底盘工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习吐槽大会 #
46992次浏览 214人参与
# 产品实习,你更倾向大公司or小公司 #
150471次浏览 1931人参与
# 我的实习收获 #
38659次浏览 561人参与
# 得物求职进展汇总 #
96237次浏览 804人参与
# 晒一晒你的工位 #
88999次浏览 315人参与
# 硬件兄弟们 甩出你的华为奖状 #
103790次浏览 689人参与
# 现在还是0offer,延毕还是备考 #
1030465次浏览 7547人参与
# 产品每日一题 #
43261次浏览 560人参与
# 如何看待offer收割机的行为 #
777194次浏览 6020人参与
# 大城市找工作会更容易吗 #
38053次浏览 332人参与
# 工作中,努力重要还是选择重要? #
122808次浏览 1536人参与
# 来聊聊你目前的求职进展 #
627121次浏览 6725人参与
# 投格力的你,拿到offer了吗? #
82134次浏览 571人参与
# 互联网回暖,腾讯要招5000人! #
17087次浏览 557人参与
# 我的租房踩坑经历 #
40029次浏览 382人参与
# 26届秋招投递记录 #
6040次浏览 156人参与
# 为什么国企只招应届生 #
172606次浏览 1140人参与
# 提前批过来人的忠告 #
103160次浏览 1124人参与
# 移动求职进展汇总 #
1808次浏览 19人参与
# 我和mentor的爱恨情仇 #
46283次浏览 289人参与