-
串行收集器
-
并行收集器
···
···
-
cms收集器
-
GC参数整理
-XX:+UseSerialGC:在新生代和老年代使用串行收集器 -XX:SurvivorRatio:设置eden区大小和survivior区大小的比例 -XX:NewRatio:新生代和老年代的比 -XX:+UseParNewGC:在新生代使用并行收集器 -XX:+UseParallelGC :新生代使用并行回收收集器 -XX:+UseParallelOldGC:老年代使用并行回收收集器 -XX:ParallelGCThreads:设置用于垃圾回收的线程数 -XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器 -XX:ParallelCMSThreads:设定CMS的线程数量 -XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发 -XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片的整理 -XX:CMSFullGCsBeforeCompaction:设定进行多少次CMS垃圾回收后,进行一次内存压缩 -XX:+CMSClassUnloadingEnabled:允许对类元数据进行回收 -XX:CMSInitiatingPermOccupancyFraction:当永久区占用率达到这一百分比时,启动CMS回收 -XX:UseCMSInitiatingOccupancyOnly:表示只在到达阀值的时候,才进行CMS回收
-
总结:
cms相对来说有以下特点: 1、能保证系统的响应时间,减少垃圾收集时的停顿时间,对一些做监控的应用优其重要。 2、Cms采用Mark-Sweep会对堆产生空间碎片,但是可以指定在经过几次垃圾回收后再做总的空间整理 3、虽然fgc回收时间相对比并行收集器少,但总的回收次数确是多的,所以会导致系统停顿次数变多,导致吞吐量下降。
来源:https://my.oschina.net/u/3730149/blog/3110265