geek的技术日志,记录每一次技术思考的闪光点。

JVM学习:常见的GC收集器

GC收集器主要有7种:

1.serial收集器

单线程,工作时必须暂停其他工作线程。多用于client机器上,使用复制算法

2.ParNew收集器

serial收集器的多线程版本,server模式下虚拟机首选的新生代收集器。复制算法

3.Parallel Scavenge收集器

复制算法,可控制吞吐量的收集器。吞吐量即有效运行时间。

4.Serial Old收集器

serial的老年代版本,使用整理算法。

5.Parallel Old收集器

第三种收集器的老年代版本,多线程,标记整理

6.CMS收集器

目标是最短回收停顿时间。标记清除算法实现,分四个阶段:

  • 初始标记:GC Roots直连的对象做标记
  • 并发标记:多线程方式GC Roots Tracing
  • 重新标记:修正第二阶段标记的记录
  • 并发清除。

缺点:标记清除算法的缺点,产生碎片。CPU资源敏感。

7.G1收集器

基本思想是化整为零,将堆分为多个Region,优先收集回收价值最大的Region。

  • 并行并发
  • 分代收集
  • 空间整合(标记整理算法)
  • 可预测的停顿

未经允许不得转载:极客技术 » JVM学习:常见的GC收集器

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址