有什么办法可以让 Eden 空间按比例大于 Tenured 空间吗?有 NewRatio
但它以相反的方式工作(Tenured 比 Eden 大几倍)。
我知道有 -XX:NewSize=
和 -XX:OldSize=
但我一直在寻找类似于提到的比率参数的东西(这将提供更大的灵 active ) .
我尝试过使用分数,但它不是有效值。
最佳答案
与总堆大小(使用 -Xms 和 -Xmx)类似,可以显式设置年轻代大小的下限和上限。但是,在设置 -XX:MaxNewSize 时,我们需要考虑到年轻代只是堆的一部分,并且我们选择的大小越大,老年代就会越小。 出于稳定性原因,不允许选择比老年代更大的年轻代大小,因为在最坏的情况下,GC 可能需要将所有对象从年轻代移动到老年代。因此 -Xmx/2 是 -XX:MaxNewSize 的上限。
出于性能原因,我们还可以使用标志 -XX:NewSize 指定年轻代的初始大小。如果我们知道年轻对象的分配速率(例如,因为我们测量了它!),那么这很有用,并且可以节省随着时间的推移将年轻一代缓慢增长到该大小所需的一些成本。
我的回答是基于this博客。
关于java - 如何使 Eden Space 大小加倍 Tenured Space,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37654599/