堆配置:
-Xmn:初始堆内存
-Xmx:最大堆内存
-XX:NewSize: 年轻代大小
-XX:NewRadio:年轻代和老年代比值
-XX:SuvivorRatio:年轻代中eden 和suvivor的比例
-XX:MaxPermSize:持久代大小
注意:堆初始大小和最大堆内存大小建议设置一样 不然会频繁GC 影响性能,一般不能太大,太大会导致回收慢。
GC收集器配置:
-XX:+UserSerialGC :串行GC
-XX:+UserParalleGC:并行gc
-XX:+UserParalleOldGC:老年代并行GC
-XX:+UseConcMarkSweepGC::并发GC
垃圾日志配置:
-XX:+PrintGC 打印GC日志
-XX:+PrintGCDetail
-XX:+PrintGCTimeStamps
-Xloggc:filename
通常配置:
堆参数配置:
-Xmn=3550m
-Xmx=3550m
-XX:NewRatio=4 年轻代与老年代的比值
-XX:SurvivorRatio=4: 年轻代中的比值 一般是8:1:1
-XX:MaxTenuringThreshold=0 垃圾最大年龄 过小的话 会产生大量老年代对象
并发收集器参数配置:
-XX:CMSFullGCsBeforeCompaction=5
-XX:+UseCMSCompactAtFullCollection
-XX:CMSFullGCsBeforeCompaction:
-XX:+UseCMSCompactAtFullCollection:
调优:
1.初始堆内存和最大堆内存设置一样。
2.年轻代中Survivor区不能设置过小,不然会导致对象直接进入老年代(总大小大于了这块Survivor区域的内存大小的50%)。
3.使用合适的GC收集器 打到最大吞吐或最快响应的要求。
。。。
调优工具:
VisualVM