JVM——这七种垃圾回收器你知道吗?

   日期:2020-08-04     浏览:130    评论:0    
核心提示:垃圾回收器垃圾回收器Serial收集器ParNew收集器Parallel Scavenge收集器Serial Old收集器Parallel Old收集器CMS老年代收集器G1回收器垃圾回收器评价垃圾回收器好坏的标准:1.回收的空间效率.扫-遍地,能扫出多少垃圾.2.回收的速度.扫- -遍地要花多长时间.3.垃圾回收和应用线程之间能否并发执行.扫地的时候会不会影响到别人干活. (STW)4.垃圾回收器是否是多线程的.5.回收的时间是否是可预测的.承诺10分钟之内一定把地扫完.即使扫的不算非常干

垃圾回收器

  • 垃圾回收器
    • Serial收集器
    • ParNew收集器
    • Parallel Scavenge收集器
    • Serial Old收集器
    • Parallel Old收集器
    • CMS老年代收集器
    • G1回收器

垃圾回收器

评价垃圾回收器好坏的标准:
1.回收的空间效率.扫-遍地,能扫出多少垃圾.
2.回收的速度.扫- -遍地要花多长时间.
3.垃圾回收和应用线程之间能否并发执行.扫地的时候会不会影响到别人干活. (STW)
4.垃圾回收器是否是多线程的.
5.回收的时间是否是可预测的.承诺10分钟之内一定把地扫完.即使扫的不算非常干净,但是也最大程度上的把一些重要的垃圾清理掉了
垃圾回收器里面都是要做两件事:标记(可达性分析)+回收(标记清除、标记复制、标记整理)

Serial收集器

.给新生代使用,串行回收.
复制算法单线程进行标记+回收

ParNew收集器

(新生代收集器,多线程进行GC)

Parallel Scavenge收集器

(新生代收集器,并行GC)

Serial Old收集器

(老年代收集器,串行GC)
相当于Serial收集器的老年代版本.基本特点差不多,也是单线程的方式进行标记回收的.

Parallel Old收集器

(老年代收集器,并行GC)

CMS老年代收集器

并行GC,采用的是多线程标记-清除
特点,尽可能缩短STW时间.

G1回收器

比较新的回收器,Java11 开始才默认使用的回收器.是以上7种中最优秀的回收器.

针对新生代的region同样是使用复制算法进行回收.

针对老年代的回收,类似于CMS,但是有一定的差别.
a)初始标记和CMS类似,只去找GCRoot直接关联的对象.时间比较短,会涉及STW
b)并发标记(Concurrent Mark),和应用线程并发执行,进行可达性分析,遍历所有的对象. (不涉及STW)
和CMS不一样的是, 如果发现某个老年代region中已经没存活对象了,就直接回收掉.不去等最后一个环节回收了.
c)最终标记.为了修正b)产生的误差. SATB(snapshot- at- the- beqining)
d)筛选回收

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服