一、串行收集器
-XX:+UseSerialGC
从第二张图的时间可以看出来,复制算法的效率要比标记压缩算法高的多。
二、并行收集器
-XX: +UseParNewGC (新生代并行,老年代串行)
-XX: +UseParallelGC (新生代并行,老年代串行)
-XX: +UsePrallelOldGC (新生代老年代都是串行)
注意:多线程不一定更快,这就跟写程序一样,要注意使用场景。
图示:
注意图中红字,PSYoungGen和ParOldGen表示新生代老年代都用的并行收集器,所以此时的GC参数是 -XX: UseParallelOldGC。
三、CMS收集器(默认不使用,一般作为老年代串行收集器的后备)
图示:
四、GC参数整理
- -XX: +UseSerialGC:新生代和老年代使用串行收集器
- -XX: +SurvivorRatio: 设置survivor区和eden区大小比率
- -XX: +NewRatio: 新生代和老年代的比率
- -XX: +UseParNewGC: 新生代使用并行收集器
- -XX: +UseParallelGC: 新生代使用并行收集器
- -XX: +UsePrallelOldGC: 老年代使用并行收集器
- -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回收
原文地址:https://www.cnblogs.com/NoYone/p/8971770.html
时间: 2024-08-30 07:13:49