4核8G电脑JVM配置模板:
-Xms4096M -Xmx4096M -Xmn3072M -Xss1M -XX:PermSize=256M -XX:MaxPermSize=256M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=92 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSParallelInitialMarkEnabled -XX:+CMSScavengeBeforeRemark -XX:+CMSScavengeBeforeRemark -XX:PretenureSizeThreshold=1M -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log
以上参数说明:
-Xms:初始堆大小
-Xmx:最大堆大小
-Xmn:年轻代大小
-Xss:栈大小
-XX:PermSize:永久代设置大小
-XX:MaxPermSize:最大永久代设置大小
-XX:+UseParNewGC:年轻代使用ParNew垃圾回收器
-XX:+UseConcMarkSweepGC:老年代使用CMS垃圾回收器
-XX:CMSInitiatingOccupancyFaction:设置老年代占用多少比例的时候触发CMS垃圾回收,JDK 1.6里面默认的值是92%
-XX:+UseCMSCompactAtFullCollection 开启内存碎片化整理
-XX:CMSFullGCsBeforeCompaction 多少次老年代GC之后开始碎片化整理,默认是0
-XX:SurvivorRatio:年轻代中Eden区与Survivor区的占比:8:1:1
-XX:MaxTenuringThreshold:年轻代躲过X次回收进入老年代
-XX:PretenureSizeThreshold:大对象设置,超过此大小的对象直接进入老年代
XX:+CMSParallelInitialMarkEnabled:标识在初始化标记的多线程执行,减少STW
-XX:+CMSScavengeBeforeRemark:在重新标记之前执行minorGC减少重新标记的时间
-XX:+CMSParallelRemarkEnabled:在重新标记的时候多线程执行,降低STW
-XX:+DisableExplicitGC 配置此参数,禁止使用手写的System.gc() 回收垃圾的写法