JVM1.8(四):垃圾收集器

本文详细介绍了JVM1.8中的垃圾收集器,包括Serial、ParNew、Parallel Scavenge、CMS和G1收集器的工作原理、优缺点以及应用场景。强调了GC对吞吐量、暂停时间和内存碎片的影响,并提供了相应的JVM内存配置原则。
摘要由CSDN通过智能技术生成

如果说垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。

下图展示了七种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明他们是可以搭配使用的。

一、垃圾收集器的种类

1.1 Serial收集器和Serial Old收集器

运行过程

下图示意了Serial、Serial Old收集器的运行过程

Serial收集器是最基础、历史最悠久的收集器。这是一个单线程工作的收集器。“单线程”的意义并不仅仅是说明它会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调它在垃圾收集时,必须暂停其他所有工作线程,直到它收集结束(STW)。 

串行收集器新生代采用复制算法,老年代使用标记-整理算法。

优点

优点是简单,对于单CPU,由于没有多线程的交互开销,可能更高效。是默认的Client模式(桌面应用)下的新生代收集器。

缺点

停顿时间较长。

使用下面的命令来开启Serial + Serial Old 的收集器组合

-XX:+UseSerialGC

1.2 ParNew收集器和CMS收集器

运行过程

下图示意了ParNew、CMS收集器的运行过程

ParNew收集器实质上是Serial收集器的多线程并行版本。

它在垃圾收集时,同样会暂停其他所有工作线程,直到它收集结束(STW)。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值