快捷搜索: 王者荣耀 脱发

堆空间的参数设置【JVM】

-XX:+PrintFlagsInitial:查看所有的参数的默认初始值 -XX:+PrintFlagsFinal:查看所有的参数的最终值(可能会存在修改,不再是初始值) -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:HandlePromotionFalilure:是否设置空间分配担保

在发生Minor GC之前,虚拟机会检查老年代最大可用的连续空间是否大于新生代所有对象的总空间。

    如果大于,则此次Minor GC是安全的 如果小于,则虚拟机会查看-xx:HandlePromotionFailure设置值是否允担保失败。 如果HandlePromotionFailure=true,那么会继续检查老年代最大可用连续空间是否大于历次晋升到老年代的对象的平均大小。 如果大于,则尝试进行一次Minor GC,但这次Minor GC依然是有风险的; 如果小于,则改为进行一次FullGC。 如果HandlePromotionFailure=false,则改为进行一次Full GC。

在JDK6 Update24之后,HandlePromotionFailure参数不会再影响到虚拟机的空间分配担保策略,观察openJDK中的源码变化,虽然源码中还定义了HandlePromotionFailure参数,但是在代码中已经不会再使用它。JDK6 Update 24之后的规则变为只要老年代的连续空间大于新生代对象总大小或者历次晋升的平均大小就会进行Minor GC,否则将进行FullGC。

经验分享 程序员 微信小程序 职场和发展