有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么Eden的大小会增加,而较小的GC时间会减少

在一个博客中,我发现有一句话是这样说的:当伊甸园的规模扩大时,小GC的时间会减少。 但在我看来,当Eden变大时,与GC根链接的对象的数量也会增加,那么复制行为将更加频繁,从而导致更长的GC时间。有人能解释一下吗,thx~


共 (1) 个答案

  1. # 1 楼答案

    两个次要GCs之间的时间取决于用新对象填充伊甸园空间所需的时间——因此它类似于(伊甸园大小)/(对象创建率)。因此,伊甸园越大,两次GC运行之间的时间越长,对象越有时间英年早逝

    另一方面,复制收集器使用的时间与要收集的垃圾量无关,但仅取决于要复制的活动对象的数量。在伊甸园空间中有更多的物体死亡意味着复制到幸存者空间的物体更少,因此花费在次要地面军事系统上的时间更少