jvm垃圾收集器

1、serial收集器


       单线程,复制算法,stop the world垃圾收集器,主要进行新生代的垃圾回收,stop the  world意思是在该收集器工作时,用户进程要被暂时停止运行,所以该算法并不适合需要响应及时的系统,但是也并不是说他无用,相反他还是非常主流的垃圾收集器,虽然有这样的缺点,但是不可否认的是,因为单线程所以简单,高效。


2、ParNew收集器


        serial的多线程版本,使用复制算法,stop the world等和serial一模一样,正因为这么多都是一样的,所以在极限情况,如果在单CPU,单核情况下,ParNew并没有比serial的效率高。但是他仍然是server端的新生代收集器的重要收集器。
    还有一个很重要的原因是只有serial和ParNew可以与划时代意义的CMS收集器共用,所以他仍然是新生代的重要收集器。


3、Parallel Scavenge收集器


        新生代收集器,使用复制算法进行垃圾回收,从明面上看好像和PerNew收集器没有区别,但是实际上是这两个收集器关注的要点不一样,PerNew收集器目标是尽量缩短GC的时间,提高系统的响应,但是PS收集器目标则是尽量提高系统的吞吐量,即提高用户线程利用或占用CPU的时间,所以该收集器并不适合高响应的应用,更适合属于后台计算的应用,像离线计算用改收集器就是个不错的选择。
       该收集器也支持手动调节垃圾回收的停顿时间和系统的吞吐量,即-XX:MaxGCPauseMills和-XX:GCTimeRatio,但是也并不是说将-XX:MaxGCPauseMills设置的足够小就能够提高系统的吞吐量。反过来理解一下,想在尽量短的时间内完成内存的回收,可以怎么做?可能我们能想到就是:一是提高回收算法的运行速度;二是缩小内存的大小。现在是算法是固定的,那么为了尽可能在规定的时间内完成垃圾收集,只能去调节内存的大小,这样会更容易导致JVM的可用内存降低,反而容易导致内存溢出,即使不带来这么大的问题,势必会导致吞吐量降低,垃圾回收频繁发生。
       -XX:GCTimeRatio该参数就是直接设置吞吐率的一个参数,目前只想总结相关的收集器,具体的参数不是本次分享的主要目标就不再详细写了。


4、serial old收集器


       看名字就能发现这是一个老年代的垃圾收集器,是一个单线程,采用“标记-整理算法”进行垃圾收集,主要还是在client模式下使用。


5、Parallel old收集器


       Parallel Scavenge收集器的老年代版本,是一个多线程,采用标记-整理算法的垃圾收集器。可以和Parallel Scavenge搭配使用,实现最大吞吐量。


6、CMS收集器


       CMS收集器是并发标记收集器,有关键字标记,那么就很大可能使用标记-清除和标记-整理算法,实际上他采用的就是标记-清除算法进行垃圾回收,但是该收集器在进行垃圾回收时过程比serial等都要复杂一点。
       该收集器的垃圾回收主要有四个步骤:初始标记,并发标记,重新标记和并发清除四步。其中初始标记和重新标记仍然需要stop the world,至于为什么要stop the world,我理解是和采用的算法有关系,采用的算法是标记-清除算法。初始标记主要是标记能够被root关联到的对象,并发标记是进行GC root tracing,即运行根搜索算法;重新标记就是对重新标记之前由于用户的操作导致变更的对象的修正。


7、G1收集器


       不同于前边所有的垃圾收集器,是对整个新生代或者老年代进行垃圾回收,该收集器将内存区域划分成多个区域,按照区域进行垃圾回收,所以可以和用户线程并发进行,可以精准控制吞吐量等

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿每日分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值