JVM堆分为两个空间,老年代空间和年轻代空间。在major GC之后,在compact/sweep过程之后,老年代会有释放空间,我想知道我们在major GC时得到的空闲空间是否仍然属于老年代空间,或者老年代的空闲空间可以移动到空间中年轻一代?
换句话说,我问的是老年代空间和年轻一代空间是否有固定的大小/边界。
提前谢谢, 林
JVM堆分为两个空间,老年代空间和年轻代空间。在major GC之后,在compact/sweep过程之后,老年代会有释放空间,我想知道我们在major GC时得到的空闲空间是否仍然属于老年代空间,或者老年代的空闲空间可以移动到空间中年轻一代?
换句话说,我问的是老年代空间和年轻一代空间是否有固定的大小/边界。
提前谢谢, 林
我认为这是每一代之间的界限,但有些代的大小可能是可变的,-Xmx
而且-Xms
不一样。
何时收集对象,垃圾收集将对象使用的空间标记为可用。
它看起来像删除磁盘上的文件。操作系统只是将文件路径标记为不可访问,并使空间可用于下一次存储。
世代喜欢磁盘分区,但世代可以减少或增加他们的空间。
在热点中,有一些选项
-XX:+UseAdaptiveSizePolicy
-XX:+UseAdaptiveGCBoundary
然而,这仍然可以被虚拟机忽略。它是黑暗自动调整魔法的一部分。为简单起见,只假设老幼之间的划分是固定的。同样适用于伊甸园和幸存者。