为什么老一代比年轻一代占据更多的空间



有人说在java虚拟机中老一代比年轻一代占用更多的空间,对吗?我在网上没有找到任何关于这个话题的文章。

任何帮助都非常感谢!

JVM中代大小之间的比率是不同因素之间的权衡。

参见java启动器工具的"非标准选项":

厦门大小

为年轻代(托儿所)设置堆的初始和最大大小(以字节为单位)。…

堆的年轻生成区域用于新对象。与其他区域相比,该区域执行GC的频率更高。如果年轻代的大小太小,那么将执行许多次要垃圾收集。如果大小太大,则只执行完整的垃圾收集,这可能需要很长时间才能完成。Oracle建议您将年轻代的大小保持在总堆大小的一半到四分之一之间。

所以比率不是固定的,而是可调的。它甚至不必是一个常数,因为您可以使用-XX:NewSize为年轻代设置最小和最大大小。-XX:MaxNewSize。但建议确实是有一个年轻的一代比老一代小,我希望默认值遵循它。

最新更新