gpt4 book ai didi

java - 为什么老一代不好?

转载 作者:行者123 更新时间:2023-11-30 06:13:45 24 4
gpt4 key购买 nike

一个对象在被重新定位到老年代空间之前可以在幸存者空间之间复制 7 次,我理解这是为了让对象在被放入老年代空间之前有机会被垃圾收集。我正在听的讲座说这是为了避免对象从年轻代空间提升到老年代空间。

我的问题是为什么升级到老年代不好?讲座没有对此进行解释。

最佳答案

Why is old generation bad?

The lecture that I am listening to states that this is so to avoid object promotion from young generation space to old generation space.

并不是说提升到老一代是不好的一般。只有当生命周期短的对象被意外提升时,这才是糟糕的。

想要老年代中的长生命周期对象,这样它们就不会干扰次要集合。

分配率大致与对象生命周期成反比(这导致了 weak generational hypothesis) 。这意味着短生命周期的对象以高速率生成。这反过来意味着:如果生命周期较短的对象被提升到老年代,那么老年代将以很高的速度被填满。

次要 GC 通常比主要 GC 更便宜,尤其是在暂停时间方面,这就是为什么您不希望经常运行后者。

对于 CMS 和 G1,您必须进一步区分。他们尝试以部分并发的方式收集老年代——在 G1 的情况下是小块收集——但如果他们遇到一些失败情况 或无法跟上提升,他们就会退回到完全停止世界的 GC费率

从根本上说,过快地提升太多生命周期短的对象违反了构建 GC 所围绕的弱世代假设。

关于java - 为什么老一代不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31465624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com