APP下载

JVM虚拟机之Garbage-First垃圾收集器

2019-08-21肖洋

商情 2019年34期

肖洋

【摘要】在JVM(Java Virtual Machine)的研究上,有很多方面的应用,但是在其最基础的依赖应用上,还要说一说性能管理相关的应用。我们通过对Garbage-First(简称G1)的研究,从各个方面总结出G1的优劣势,让各个JVM中能更优的选择相关的垃圾收集器。本文总结了G1相关特性,列举了部分的应用场景及有利条件,从而给使用者一个更正确的应用场景。

【关键词】垃圾收集器 JVM Garbage-First

一.引言:

自2000年以来,我国的互联网技术得到了突飞猛进,在相关创新、应用、研究上也有了不同程度的进展。在应用服务器上,选择垃圾回收器是最重要的环节之一,它不仅仅是有利于程序的研发,在某些场景里,更可能作为与别的应用程序的竞争优勢。

在JVM垃圾收集器历史发展上,相关的垃圾收集器已经百花齐放了。但是不同垃圾收集器,有不同的优劣势,也有不同的工作场景,所以,在应用服务器选择垃圾收集器的同时,也需要选择恰当的垃圾收集器。

JVM的垃圾收集器,从Serial收集器到ParNew,再到后面先进的CMS(Concurrent Mark Sweep),到现在使用的G1垃圾收集器以及研发阶段的Shenandoah都在对相关算法不断的升级与改造,但是任何算法都不是完美的,只有最合适某一种应用场景的算法,没有适合所有应用场景的算法。

二.G1收集器

2.1 何为G1垃圾收集器

G1(Garbage-First)垃圾收集器是目前的虚拟机垃圾收集器中比较先进的垃圾收集器之一,在JDK1.7中替换了原本的CMS垃圾收集器[1]。相比较CMS垃圾收集器,G1倍受关注的是收集器在工作时的STW(Stop The World)的时长。G1的优势非常明显,并行与并发、分代手机、空间整合、可预测性停顿等等[2]都是G1在发布时不可替代的优势,这样就使之成为现在风靡一时的垃圾回收器。……

登录APP查看全文