垃圾收集器

136 阅读1分钟

串行收集器

Serial/Serial Old

  • 新生代使用复制算法,老年代使用标记整理算法
  • 在单cpu场景下,可能更搞笑,默认的Client模式下的新生代收集器
  • 命令行参数: -XX:+UseSerialGC

并行收集器

ParNew(并行)收集器:使用多线程进行垃圾回收,在垃圾收集时,会Stop-the-World,固定和CMS使用

新生代 Parallel Scavenge收集器

  • -XX:MaxGCPauseMillis(GC最大停顿时间)

这个参数如果设置得太小,就会频繁GC

CMS收集器

  • 初始标记
  • 并发标记
  • 重新标记
  • 并发清除 缺点 :
  • 浮动垃圾
  • 内存碎片

命令行

- -XX:UserConcMarkSweepGC
- -XX: CMSInitiatingOccupancyFraction (68% jdk9+ 80%) 

G1 收集器

  • 初始标记
  • 并发标记
  • 重新标记
  • 筛选回收