`
dingdingji
  • 浏览: 5912 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java各种垃圾收集器介绍

    博客分类:
  • Java
阅读更多

Serial 收集器
        Serial 收集器是最基本、历史最悠久的收集器,单线程的方式收集新生代的收集器,进行收集工作时会停止用户所有的工作线程(Stop the world),比较时候运行在 Client 模式下的虚拟机

ParNew 收集器
        Serial 收集器的多线程版本,是运行在 Server 模式下虚拟机首选的新生代收集器,可以使用 -XX:+UseParNewGC 选项来强制指定它

Parallel Scavenge 收集器
       使用了复制算法的新生代收集器,和 ParNew 一样,也是多线程实现的,他们的区别在于:Parallel Scavenge 收集器关注的是尽可能地达到一个可控的吞吐量,如虚拟机总共运行了100分钟,其中垃圾收集花掉1分钟,则吞吐量就是99%

Serial Old 收集器
        Serial 收集器的老年代版本,使用“标记-整理”算法,比较时候在 Client 模式的虚拟机使用

Parallel Old 收集器
        Parallel Scavenge 收集器的老年代版本,使用多线程的“标记-整理”算法

CMS 收集器
        CMS 收集器是一种以获取最短回收停顿时间为目标的收集器,基于“标记-清除”算法

G1 收集器
        理论上的下一代收集器

各种垃圾收集器搭配的方式:

目前常用的收集器搭配
1. Parallel Scavenge + Parallel Old
2. ParNew + CMS
一般来说,如果能使用 Parallel Scavenge + Parallel Old 的话就不要用 CMS,因为 Parallel 的吞吐量率更高,只要停顿时间不是太长的话,就不需要使用CMS收集器

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics