首页 > 其他 > 详细

JVM(5)—垃圾收集器

时间:2020-08-18 16:20:30      阅读:70      评论:0      收藏:0      [点我收藏+]

(1)Serial垃圾收集器(单线程、复制算法)

使用一个CPU和一条线程去完成垃圾收集工作。收集期间其他线程暂停。当前,一般运行在clint端。

(2)ParNew垃圾收集器(Serial + 多线程)

Serial收集器的多线程版本。也使用复制算法。收集期间其他线程暂停。

默认开启与CPU一样多的线程数。当前,一般运行在Server下.

(3)Parallel Scavenge收集器

关注程序达到一个可控制的吞吐量.。也是一个新生代的多线程复制算法垃圾收集器。

(4)Serial old收集器(单线程标记整理算法)

主要运行在client端。与新生代收集器配合工作。

(5)Parallel Old收集器(多线程标记整理算法)

(6)CMS收集器。

主要目标是获取最短垃圾回收时间,采用多线程的标记-清除算法。

初始标记:标记GC Roots能直接关联的对象,速度很快,但需要停掉所有线程。

并发标记:进行GC Roots跟踪的过程,和用户线程一起工作,不需要暂停所有线程。

重新标记

并发清除

(7)G1收集器

基于标记整理算法,不产生内存碎片。

可以非常精确控制停顿时间,在不牺牲吞吐量的前提下,实现低停顿垃圾回收。

G1 收集器避免全区域垃圾收集,它把堆内存划分为大小固定的几个独立区域,并且跟踪这些区域
的垃圾收集进度,同时在后台维护一个优先级列表,每次根据所允许的收集时间,优先回收垃圾
最多的区域。区域划分和优先级区域回收机制,确保 G1 收集器可以在有限时间获得最高的垃圾收
集效率。

JVM(5)—垃圾收集器

原文:https://www.cnblogs.com/liuhaichuan/p/13523824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!