我使用以下命令行启动我的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是老年代初始大小吗?
-XX:NewRatio
值越大,“老年代”大小就越大,因此比值中分子应该是“老年代”,而不是分母。(测试环境为Sun HotSpot JVM版本1.6.0_45。) - Jim Pivarski