JVM垃圾收集器(串行,吞吐量优先)

JVM垃圾收集器(串行,吞吐量优先)


垃圾收集器就是内存回收的具体实现

一、串行的垃圾收集器

1、Serial收集器器(新生代收集器,串行GC)(复制)
在这里插入图片描述
特性

Serial收集器是最基本新生代收集器,这个收集器是一个单线程的收集器,但它的“单线程”的意义并不仅仅说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束(Stop The World).

垃圾回收的过程

先是所有的用户线程进行运行,然后在进行垃圾回收时,其他的用户线程都会在安全点停留,只有一个线程进行垃圾回收,然后其他的线程都会进行阻塞,直到垃圾回收线程收集结束之后,其他所有线程恢复运行。

应用场景

Serial收集器是虚拟机运行在Client模式下的默认新生代收集器。

优势:

简单而高效(与其他收集器的单线程比),对于限定单个CPU的环境来说,Serial收集器器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程收集效率。 实际上到现在为止 : 它依然是虚拟机运行在Client模式下的默认新生代收集器。

2、Serial Old收集器(老年代收集器,串行GC)(标记+整理)

与之对应的老年代收集器就是Serial Old收集器,它同样是一个单线程收集器,用的是标记加整理算法。

应用场景

Client模式 :Serial Old收集器的主要意义也是在于给Client模式下的虚拟机使用。

Server模式: 如果在Server模式下,那么它主要还有两大用途:一种⽤用途是在JDK 1.5以及之前的版本中与Parallel Scavenge收集器搭配使用,另一种用途就是作为CMS收集器器的后备预案,在并发收集发生Concurrent Mode Failure时使用。

二、吞吐量优先的垃圾收集器

1,Parallel Scavenge收集器(新生代收集器,并行GC)(复制)
Parallel Scavenge收集器是⼀一个新生代收集器,它也是使用复制算法的收集器,又是并行的多线程收集器。

Parallel Scavenge收集器使用两个参数控制吞吐量:
XX:MaxGCPauseMillis 控制最大的垃圾收集停顿时间
XX:GCRatio 直接设置吞吐量量的大小

直观上,只要最大的垃圾收集停顿时间越小,吞吐量是越高的,但是GC停顿时间的缩短是以牺牲吞吐量和新生代空间作为代价的。⽐比如原来10秒收集一次,每次停顿100毫秒,现在变成5秒收集一次,每次停顿70毫秒。停顿时间下降的同时,吞吐量也下降了。

应用场景

停顿时间越短就越适合需要与用户交互的程序,良好的响应速度能提升用户体验,而高吞吐量则可以高效率地利⽤用CPU时间,尽快完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务

GC自适应的调节策略

Parallel Scavenge收集器器有一个参数**- XX:+UseAdaptiveSizePolicy** 。当这个参数打开之后,就不需要手工指定新生代的大小、Eden与Survivor区的比例、晋升老年代对象年龄等细节参数了了,虚拟机会根据当前系统的运⾏情况收集性能监控信息,动态调整这些参数以提供最合适的停顿时间或者最大的吞吐量,这种调节方式称为GC⾃自适应的调节策略(GC Ergonomics)

2,Parallel Old收集器(老年代收集器,并行GC)(标记+整理)

特性: Parallel Old是Parallel Scavenge收集器的⽼年代版本,使用多线程和“标记-整理”算法。

应用场景

在注重吞吐量以及CPU资源敏感的场合,都可以优先考虑Parallel Scavenge加Parallel Old收集器。

垃圾回收的过程
在这里插入图片描述
在多线程的情况下运行,有效的利用率cpu的资源

在多个线程进行运行时,要进行垃圾回收时,多个线程会停止到安全点,然后所有的线程都进行垃圾回收,然后回收完毕后都重新进行运行。

特点提高了cpu的使用效率,并且加大了吞吐量,就是停顿时间加长了,主要适用于不太进行交互的任务,并且吞吐量大的时候,还有一个GC 自适应调节策略,可以自己控制吞吐量以及最大停顿时间

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值