随时记录,方便以后查看:
1 -XX:+HeapDumpOnOutOfMemoryError 虚拟机在OOM异常以后,自动生成dump文件
2 -Xms20M 堆初始化20M
3 -Xmx20M 堆最大20M
4 -Xmn10M 新生代10M
5 -XX:SurvivorRatio=8 表示young区,EdenSpace,SurvivorSpace(SurvivorTo,SurvivorFrom)的比例为8:1:1
6 -XX:PretenureSizeThreshold=2097152 单位B,表示对象大于这个值(2M),则直接进入Old区
7 -verbose:gc 打印GC信息
8 -XX:MaxTenuringThreshold=15 表示一个对象在新生代中,在15次MinorGC之后还依然存活,就将其放入Old区
9 如果Survivor空间中相同年龄所有对象大小的总和大于Survivor空间总和的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到XX:MaxTenuringThreshold要求的年龄。
10 垃圾收集方式: 串行收集,并行收集,并发收集
串行收集(Serial:[范围:新生代,复制回收] ,Serial Old:[范围:老年代,标记-整理]):单线程回收,stop the world. 适合于Client端运行,比如桌面应用程序
并行收集(ParNew[相对于Serial,-XX:SurvivorRatio,-XX:PretenureSizeThreshold,-XX:HandlePromotionFailure其为多线程,目前只有它才能与CMS配合工作,-XX:ParalleGCThreads=10控制垃圾收集的线程数]),Parallel Scavenge[吞吐量优先,达到一个可控的吞吐量,-XX:MaxGCPauseMillis 垃圾回收停顿的时间,-XX:GCTimeRatio 吞吐量大小,吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间),-XX:UseAdaptiveSizePolicy 这是一个开关参数,设置这个参数之后,就不需要手工指定,-Xmn,-XX:SurvivorRation,-XX:PretnureSizeThreshold等参数,虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整]):多线程收集,stop the word. 适合吞吐量大的服务,比如后台大型计算服务器
并发收集(CMS:Concurrent Mark Sweep,标记-清楚:[CMS:initial mark[stop the world],CMS:concurrent mark,CMS:remark[stop the world] ,CMS:current sweep ]):多线程并发回收,应用在B/S中,响应速度快
11 -XX:UseSerialGC 虚拟机运行在Client模式下默认,Seriaal+Serial Old
12 -XX:UseParNewGC ParNew + Serial Old
13 -XX:UseConcMarkSweepGC ParNew+CMS+Serial Old
14 -XX:UseParallelGC 虚拟机运行在Server模式下默认 Parallel Scavenge + Serial Old(PS MarkSweep)
15 -XX:UseParallelOldGC : Parallel Scavenge + Parallel Old
16 -XX:HandlePromotionFailure : 是否允许担保失败,即老年代的剩余空间不足以应付新生代整个Eden and Survivor 区所有对象都存活的极端情况
17 -XX:CMSInitiatingOccupancyFranction 设置CMS收集器老年代空间被占用多少后触发FULL GC(Major GC),默认68%,仅在CMS收集时有效
18 -XX:CMSCompactAtFullCollection CMS 收集器在完成拉圾收集后是否要进行一次内存碎片整理.仅在CMS收集时有效
19 -XX:CMSFULLGCsBeforeCompaction CMS若干次收集之后,启动一次碎片整理,仅在CMS收集时有效