JVM中的主要GC问题
JVM堆分为两个空间,老一代空间和年轻一代空间。在主要的GC之后,在压缩/扫描过程之后将会释放旧一代的空间,我想知道我们在主要GC期间获得的空闲空间是否仍然属于旧一代空间,或者旧一代的空闲空间是否可以移动到空间年轻一代?JVM中的主要GC问题
换句话说,我问老年人的空间和年轻一代的空间是否有固定的大小/边界。
在此先感谢, 林
在热点中,有对于
-XX:+UseAdaptiveSizePolicy
-XX:+UseAdaptiveGCBoundary
然而,这仍然可以通过虚拟机被忽略的选项。它的黑暗自动调谐魔法的一部分。 为了简单起见,假定老年人和年轻人之间的分隔是固定的。同样适用于伊甸园和幸存者。
我想这是每一代之间的边界,但一些代的尺寸可能变化的正弦-Xmx
和-Xms
不一样。
何时收集对象,垃圾收集将空间标记为对象所用的可用空间。
它看起来像删除磁盘上的文件。操作系统只是将文件路径标记为不可访问,并使下一个存储空间可用。
世代像磁盘分区,但世代可以减少或增加他们的空间。
因此,这意味着如果主GC大量释放空间,而没有重新设置大小配置,这些空间就不能被年轻一代重复使用? –
该空间可以重复使用。只需将文件从磁盘C移动到磁盘D即可。磁盘C释放下一个存储的文件空间。 – lichengwu
谢谢@lichengwu。我想我们必须改变一些JVM配置,以便在年轻一代中使用旧一代的*空间?就像你给的-Xmx和-Xms选项一样? –
谢谢F*,问题回答。 –