堆空间的参数设置
作者:互联网
- 官方文档 :
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html - -XX: +PrintFlagsInitial :查看所有的参数的默认初始值
- -XX:+PrintFlagsFinal : 查看所有的参数的最终值(可能会存在修,不再是初始值)。
具体 查看某个参数的指令:
①jps:查看当前运行中的进程 ②jinfo -flag SurvivorRation(某个参数) 进程id - -Xms: 初始堆空间内存(默认为物理内存的1/64)
- -Xmx: 最大堆空间内存(默认为物理内存的1/4)
- -Xmn:设置新生代的大小。(初始值及最大值)
- -XX:NewRatio:配置新生代与老年代在堆结构的占比
- -XX: SurvivorRatio:设置新生代中Eden和S0/S1空间的比例
- -XX :MaxTenuringThreshold:设置新生代垃圾的最大年龄
- -XX: +PrintGCDetails:输出详细的GC处理日志
➢打印gc简要信息:①-XX:+PrintGC ②-verbose:gc - -XX:HandlePromotionFailure:是否设置空间分配担保(JDK7后失效)
在发生Minor GC之 前,虚拟机会检查老年代最大可用的连续空间是否大于新生代所有对象的总空间。
如果大于,则此次Minor GC是安全的。如果小于,则虚拟机会查看-XX: HandlePromotionFailure设置值是否允许担保失败。
➢如果HandlePromotionFailure=true, 那么会继续检查老年代最大可用连续空间是否大于历次晋升到老年代的对象的平均大小。
①如果大于,则尝试进行一次Minor GC,但这次Minor GC依然是有风险的;
②如果小于,则改为进行一次Full GC。
③如果HandlePromotionFailure=false, 则改为进行一次Full GC。
在JDK6 Update24(JDK7)之后, HandlePromotionFailure参数不会再影响到虚拟机的空间分配担保策略,观察openJDK中 的源码变化,虽然源码中还定义了HandleP romotionFailure参数,但是在代码中已经不会再使用它。JDK6 Update 24之后的规则变为只要老年代的连续空间大于新生代对象总大小或者历次晋升的平均大小就会进行Minor GC, 否则将进行Full GC。 .
标签:HandlePromotionFailure,新生代,XX,GC,参数设置,空间,Minor 来源: https://blog.csdn.net/qq_47102228/article/details/121560917