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

时间:2015-07-14 10:11:54

标签: performance jvm

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

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

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

请参阅“Non-Standard Options” of the java launcher tool

  

-Xmn 大小

     

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

     

堆的年轻代区域用于新对象。 GC在该区域比在其他区域更频繁地进行。如果年轻一代的规模太小,那么将会进行大量的小型垃圾收集。如果大小太大,则只会执行完整的垃圾收集,这可能需要很长时间才能完成。 Oracle建议您将年轻代的大小保持在整个堆大小的一半到四分之一。

所以比例不是固定的,而是可调的。它甚至不必是常数,因为您可以使用-XX:NewSize来设置年轻代的最小和最大尺寸。 -XX:MaxNewSize。但建议确实要让年轻一代比老一代更小,我希望默认值跟随它。