JVM垃圾收集器

简介算法

     Java虚拟机规范中对垃圾收集器应该如何实现并无任何规定,所以不一样的厂商、不一样的版本的虚拟机所提供的垃圾收集器均可能会有很大的差异,而且通常都会提供参数供用户根据本身的应用特色和要求组合出各个年代所使用的收集器。Sun HotSpot虚拟机1.6板虚拟机所包含的收集器以下所示:多线程

  • Serial收集器

单线程、新生代,复制算法收集器,工做原理示意图:并发

  • ParNew收集器

多线程版本的Serial收集器,工做原理示意图:线程

  • Parallel Scavenge收集器

和以上收集器同样,也是新生代,复制算法,并行多线程的收集器,特色是可以精准控制吞吐量资源

  • Serial Old 收集器

基于标记-整理算法的老年代收集器,主要两大用途以下:虚拟机

  1. 在JDK1.5以前的版本中与Parallel Scavenge 收集器搭配使用
  2. 做为CMS收集器的后背预案

工做原理示意图以下:原理

  • CMS收集器

CMS收集器是基于标记-清楚算法的,一种以获取最短回收停顿时间伟目标的收集器并行

优势:im

  1. 并发收集
  2. 低停顿

缺点:技术

  1. CMS收集器对CPU资源很是敏感
  2. CMS收集器没法处理浮动垃圾,可能出现Concurrent Mode Failure 失败而致使另外一次Full GC的产生
  3. 基于标记-清楚算法,容易产生大量空间碎片
  • G1收集器

当前收集器技术发展的作前沿成果,JDK1.7发布后的成熟商用版本的收集器

优势:

  1. 基于标记-整理算法,不会产生空间碎片
  2. 能够很是准确的控制停顿
相关文章
相关标签/搜索