有没有办法让伊甸园空间按比例大于Tenured?有NewRatio
,但它的工作方式相反(Tenured比Eden大一倍)。
我知道有-XX:NewSize=
和-XX:OldSize=
,但我正在寻找类似于提到的比率参数(这将提供更大的灵活性)。
我尝试使用分数,但它不是有效值。
答案 0 :(得分:1)
与总堆大小(使用-Xms和-Xmx)类似,可以显式设置年轻代的大小的下限和上限。但是,在设置-XX:MaxNewSize时,我们需要考虑到年轻一代只是堆的一部分,而我们选择它的大小越大,旧一代就越小。 For stability reasons it is not allowed to choose a young generation size larger than the old generation, because in the worst case it may become necessary for a GC to move all objects from the young generation into the old generation. Thus -Xmx/2 is an upper bound for -XX:MaxNewSize.
出于性能原因,我们还可以使用标志-XX:NewSize指定年轻代的初始大小。如果我们知道分配年轻物体的速度(例如因为我们测量它!),这是有用的,并且可以节省一些随着时间的推移将年轻一代慢慢增长到这个规模所需的成本。
我的回答基于this博客。