堆空间的参数设置
-XX:PrintFlagsInitial:查看所有的参数的默认初始值
-XX:printFlagsFinal:查看所有参数的最终值,这个可能会修改不是初始值
-Xmn:设置新生代的大小。(初始值及最大值)
-XX:NewRatio:配置新生代与老年代在堆结构的占比
-Xms:初始堆空间内存(默认是物理内存1/64)
-Xmx:最大堆空间内存(默认是物理内存的1/4)
-XX:SurvivorRatio:设置新生代中Eden和S0/S1区空间比例
-XX:MaxTenuringThreshold:设置新生代垃圾的最大年龄
-XX:PrintGCDetails:输出详细的GC处理日志;打印GC简要信息:-XX:PrintGC或者-Verbose:gc
-XX:HandlePromotionFailure:是否设置空间分配担保
在发生Minor GC前,虚拟机会检查老年代最大可用的连续空间是否大于新生代所有对象的总空间。
- 如果大于,则此次Minor GC是安全的。
- 如果小于,则虚拟机会查看-XX:HandlePromotionFailure设置值是否允许担保失败。
- 如果HandlePromotionFailure=true,那么会继续检查老年代最大可用连续空间是否大于历次晋升到老年代的对象的平均大小。如果大于,则尝试进行一次Minor GC,但这次Minor GC仍然是有风险的;如果小于,则改为进行一次Full GC。
- 如果HandlePromotionFailure=false,则改为进行一次Full GC。
- 在JDK7以后,HandlePromotionFailure参数不会影响到虚拟机的空间分配担保策略,只要老年代的连续空间大于新生代对象总和或者历次晋升的平均大小就会进行Minor GC,否则将进行Full GC。
欢迎批评指正,提出问题,谢谢!