我只在启动时设置了一些JVM配置:-Xmx1024m -Xms1024m -XX:MaxPermSize=128m -XX:PermSize=128m
答案 0 :(得分:0)
年轻一代对老一代的规模由NewRatio控制。所以,即使MaxNewSize> MaxHeapSize,NewRatio = 2,新空间的有效最大大小为1:2。老一代占据堆的2/3,而新一代占据1/3。
在您的情况下,旧空间为2/3 * 1024 = 682.6M,新空间为1/3 * 1024 = 341M。
MaxNewSize的阈值只有在低于NewRatio提供的阈值时才会启动。可以将它们视为用于配置内存的多个独立旋钮。 JVM将选择符合所有设置的设置。
答案 1 :(得分:0)
product(uintx, MaxNewSize, max_uintx, \
"Maximum new generation size (in bytes), max_uintx means set " \
"ergonomically") \
由于您未明确设置MaxNewSize
,因此会采用特殊处理的默认值。
无论如何,MaxNewSize
值只是一个提示,而NewSize
保持年轻一代的实际大小。