gpt4 book ai didi

java - 老一代的长期幸存者会任职多久?

转载 作者:行者123 更新时间:2023-12-02 01:42:32 24 4
gpt4 key购买 nike

我知道当 Age 大于 MaxTenuringThreshold 时,长期幸存者将进入老年代。但是我读过的一本书说,也是当 Survivor 空间中相同年龄的所有对象的大小大于一半时一个Survivor空间。那么问题是这个Survivor空间是SO还是S0 + S1?为什么不是 Eden + S0 或 S1?

enter image description here

最佳答案

该图有点偏离 - 永久代不存在于堆中,而是存在于非堆空间中: https://blogs.oracle.com/jonthecollector/presenting-the-permanent-generation

回答你的问题,年轻一代由以下人员组成:

  • 伊甸园
  • S0 + S1(统称为幸存者空间)。

堆中的对象有一定程度的“提升”,如下所示:`

Eden -> S0 -> S1 -> Old Generation (or tenured).

新的 Java 对象在 Eden 中创建,它具有固定的分配大小。自然,Eden 满了,就会发生一轮 Minor GC。仍然引用的对象将被提升到幸存者空间。每次 Minor GC 发生时,对象都会在 S0 和 S1 周围交换。

根据该对象存活下来的GC次数,它最终会被提升到Old Generation。当然,也会有老年代空间满的时候。然后将进行一次主要的 GC 来清理未引用的对象。

读一下: https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

关于java - 老一代的长期幸存者会任职多久?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54249619/

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