关注
三、为什么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 评论
相关推荐
点赞 评论 收藏
分享
05-29 20:34
门头沟学院 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 聊聊这家公司值得去吗 #
231302次浏览 2177人参与
# 职场人,说说你的烦心事 #
8345次浏览 69人参与
# 你认为哪个岗位找工作最卷 #
10708次浏览 39人参与
# kpi面有什么特征 #
30882次浏览 183人参与
# 一人一个landing小技巧 #
78419次浏览 1119人参与
# 职场上哪些事情令人讨厌 #
16553次浏览 82人参与
# 秋招最大的收获是什么? #
33797次浏览 296人参与
# 职场吐槽大会 #
205039次浏览 1635人参与
# 大家每天通勤多久? #
41899次浏览 329人参与
# 为了找工作你投递了多少公司? #
8728次浏览 115人参与
# 职场破防瞬间 #
234813次浏览 2125人参与
# 小红书求职进展汇总 #
56032次浏览 483人参与
# 通信硬件牛牛的实习日记 #
7118次浏览 65人参与
# 找工作前vs找工作后的心路变化 #
9554次浏览 102人参与
# 总结:哪家公司面试体验感最好 #
47536次浏览 336人参与
# tplink提前批进度交流 #
162621次浏览 1377人参与
# 机械制造岗投递时间线 #
22665次浏览 345人参与
# 研究所VS国企,该如何选 #
180506次浏览 1768人参与
# 考公还是考研,你怎么选? #
26487次浏览 135人参与
# 硬件人你反向读研了吗 #
41727次浏览 630人参与