-XX:NewRatio 和 -XX:OldSize JVM 标志的含义是什么?

我正在使用以下命令行启动我的Java应用程序:

java -XX:+PrintCommandLineFlags -verbose:gc -XX:+PrintGCDetails \
     -XX:+UseConcMarkSweepGC -jar start.jar

JVM 启用以下选项:

-XX:MaxNewSize=87244800 -XX:MaxTenuringThreshold=4 -XX:NewRatio=7
-XX:NewSize=21811200 -XX:OldPLABSize=16 -XX:OldSize=65433600
-XX:+PrintCommandLineFlags -XX:+PrintGC -XX:+PrintGCDetails
-XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseParNewGC

谁能解释一下NewRatio和OldSize的含义?特别是OldSize是终身制的初始规模吗?


答案 1

NewRatio是老一代与年轻一代的比率(例如,值2表示老年人的最大大小将是年轻人最大大小的两倍,即年轻人可以达到堆的1/3)。

OldSize不是记录在案的选项之一,但我认为它是永久空间的大小 http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html


答案 2

由于NewRatio已经得到了很好的解释,因此以下内容应该有助于OldSize。

在这里,OldSize =>终身制世代的默认大小。这是在人体工程学发挥作用之前的默认任期大小。