0

JVM堆分为两个空间,老年代空间和年轻代空间。在major GC之后,在compact/sweep过程之后,老年代会有释放空间,我想知道我们在major GC时得到的空闲空间是否仍然属于老年代空间,或者老年代的空闲空间可以移动到空间中年轻一代?

换句话说,我问的是老年代空间和年轻一代空间是否有固定的大小/边界。

提前谢谢, 林

4

2 回答 2

1

我认为这是每一代之间的界限,但有些代的大小可能是可变的,-Xmx而且-Xms不一样。

何时收集对象,垃圾收集将对象使用的空间标记为可用。

它看起来像删除磁盘上的文件。操作系统只是将文件路径标记为不可访问,并使空间可用于下一次存储。

世代喜欢磁盘分区,但世代可以减少或增加他们的空间。

于 2012-12-10T06:38:21.733 回答
1

在热点中,有一些选项

-XX:+UseAdaptiveSizePolicy
-XX:+UseAdaptiveGCBoundary

然而,这仍然可以被虚拟机忽略。它是黑暗自动调整魔法的一部分。为简单起见,只假设老幼之间的划分是固定的。同样适用于伊甸园和幸存者。

于 2012-12-11T07:34:33.113 回答