JVM快速调优手册之二: 常见的垃圾收集器

时间:2019-06-28 19:31:48   收藏:0   阅读:103
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。

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

技术图片

HotSpot虚拟机的垃圾回收器

图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。

概念理解

Serial收集器

Serial收集器是最基本、发展历史最悠久的收集器,曾经(在JDK 1.3.1之前)是虚拟机新生代收集的唯一选择。

技术图片

ParNew收集器

技术图片

Parallel Scavenge收集器

Serial Old收集器

技术图片

Parallel Old收集器

技术图片

CMS收集器

技术图片

G1收集器

技术图片

总结

虽然我们是在对各个收集器进行比较,但并非为了挑选出一个最好的收集器。因为直到现在为止还没有最好的收集器出现,更加没有万能的收集器,所以我们选择的只是对具体应用最合适的收集器。这点不需要多加解释就能证明:如果有一种放之四海皆准、任何场景下都适用的完美收集器存在,那HotSpot虚拟机就没必要实现那么多不同的收集器了。
技术图片

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!