组合的选择
单CPU或小内存,单机程序
-XX:+UseSerialGC
多CPU,需要最大吞吐量,如后台计算型应用(串型收集器)
-XX:+UseParalellGC 或者-XX:+UseParalellOldGC(互相关联激活)
多CPU,追求低停顿时间,需快速响应如互联网应用(并行收集器)
-XX:+UseParNewGC或者-XX:+UseConcMarkSweepGC
新生代与老年代收集器的对应关系
JAVA SpringBoot微服务的生产部署和调优
java -server -Xms1024m -Xmx1024m -XX:+UseG1GC -jar xxx.jar
参数 | 新生代垃圾收集器 | 新生代算法 | 老年代垃圾收集器 | 老年代算法 |
-XX:+UseSerialGC | SerialGC | 复制 | SerialOldGC | 标记整理 |
-XX:+UseParNewGC | ParNewGC | 复制 | SerialOldGC | 标记整理 |
-XX:+UseParallelGC | Parallel[Scavenge] | 复制 | ParallelOldGC | 标记整理 |
-XX:+UseConcMarkSweepGC | ParNew | 复制 | CMS+SerialOld的收集器组合 (Serial Old作为CMS出错的后备收集器) | 标记清除 |
-XX:+UseG1GC | G1(整体上采用标记-整理算法) | 局部是通过复制算法, 不会产生内存碎片 |
JAVA SpringBoot微服务的生产部署和调优
java -server -Xms1024m -Xmx1024m -XX:+UseG1GC -jar xxx.jar