0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

JVM入门之历代垃圾回收器 1

jf_78858299 来源:北洋洋洋 作者:北洋 2023-02-10 11:29 次阅读

分类

一,采用分代理念的垃圾回收器:

1.年轻代:Serial PartNew Parallel Scavenge

2.老年代:

CMS Serial Old(MSC) Parallel Old

二,不采用分代理念的垃圾回收器:

G1 ZGC Shenandoah

可搭配使用的各个收集器之间关系图:

并行和并发

很多人经常把这两个搞混,当然笔者刚开始的时候也是傻傻分不清楚。其实只要记住并行说的是GC 线程之间的关系,而并发说的是GC和用户线程之间的关系。

并行:同一时间有多条这样的线程在协同工作,但是此时用户线程是等待状态

并发:同一时间GC和用户线程可以一起工作一起运行。因此程序依然能够响应用户线程的操作但是由于GC线程也占用了一部分系统资源,所以此时的用户线程处理的效率会下降

年轻代垃圾回收器

Serial收集器

Serial收集器

特点

垃圾回收时需要STW,整个STW需要停止掉所有的用户线程来保证回收过程中引用关系不会发生变化。

但是并不是说垃圾回收的时候只会启用一个回收线程,更准确的描述应该是 「同一时间只允许一个垃圾回收线程工作」 ,也就是 「不支持并行工作」 ,多个GC线程之间串行工作。

优点

1.对于内存资源受限的机器来说比较友好:

由于回收时停止掉了所有的用户线程,因此他不必维护那些: 「用户线程和GC线程同时运行的时候在回收过程中为了保证引用关系发生变化的额外内存开销」 ;比如上一篇文章说到的原始快照和增量更新。

2.而且由于GC线程不是并行的,所以没有线程之间的交互;对于处理器内核少(线程少)的机器来说,

第一点也就是线程串行执行一个线程完了之后才能执行下一个线程,而对于并行的来说其实本质上还是串行只不过各个线程间可以自由来回切换,所以需要对切换前后的资源进行额外的保存等等因此并发涉及到的这部分线程交互开销对于该款串行执行的GC线程时没有的

图示:

串行和并行

缺点

但是缺点也很明显:回收过程中停止掉所有用户线程,对用户肯定是不能容忍的

PartNew收集器

PartNew收集器

特点:

该款垃圾收集器和刚才讲的第一个Serial收集器其实最大的不同就是GC Thread可以并行的区别。注意是 「并行」 ,之后讲解的 「CMS」 才是可以实现GC Thread 「并发」 的收集器。

Parallel Scavenge收集器

特点

该款垃圾收集器同样和PartNew收集器一样,并行GC线程。只不过该款收集器重点是倾向于 「吞吐量」

老年代垃圾回收器

Serial Old收集器

Serial Old收集器

区别于Serial回收器只是回收算法的不同

Parallel Old收集器

Parallel Scavenge收集器的老年代版本,支持多线程 「并发」 收集。

组合

「吞吐量优先垃圾回收器组合」

新生代采用Parallel Scavenge收集器,老年代采用Parallel Old收集器

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GC
    GC
    +关注

    关注

    0

    文章

    9

    浏览量

    17049
  • JVM
    JVM
    +关注

    关注

    0

    文章

    152

    浏览量

    12147
  • 线程
    +关注

    关注

    0

    文章

    497

    浏览量

    19545
收藏 人收藏

    评论

    相关推荐

    固态硬盘垃圾回收方法

    由于NAND闪存的固有限制,写前擦除和擦除粒度较大,基于NAND Flash的固态硬盘(SSD)需要执行垃圾回收以重用失效页。然而垃圾回收带来的高开销会显著降低SSD的性能,也会直接影
    发表于 12-03 10:50 2次下载
    固态硬盘<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>方法

    Jvm垃圾回收机制及性能调优实战

    JVM中自动检测并移除不再使用的数据对象的这种机制称为:垃圾回收,简称GC。JVM通过使用垃圾收集器及使用相应的
    发表于 04-03 14:31 2次下载

    交大发布可回收垃圾分拣机器人,实现助力全国垃圾分类回收工作

    6月4日消息,交大中英国际低碳学院可回收垃圾分拣机器人,更是打破国外技术垄断,可实现每小时分拣垃圾5400次,并在大量垃圾中精准识别可回收
    的头像 发表于 06-04 14:31 2816次阅读

    如何解决JVM中一个极小概率发生的bug

    到 CMS 代码存在 bug,导致 JVM 在弱内存模型的平台上 Crash。在分析过程中,涉及到 CMS 垃圾回收原理、内存屏障、对象头、以及 ParNew 并行回收算法中多个线程竞
    的头像 发表于 08-23 17:35 3177次阅读

    带颜色的JVM垃圾回收三色标记法

    三色标记法是一种垃圾回收法,它可以让JVM不发生或仅短时间发生STW(Stop The World),从而达到清除JVM内存垃圾的目的。
    的头像 发表于 10-20 14:23 1447次阅读

    详解JVM垃圾回收算法和垃圾回收

    JVM 垃圾回收机制是对堆中没有使用的对象进行回收,那么判断对象是否“存活”就至关重要。在判断对象是否“存活”的方法中,我们会介绍引用计数算法和可达性分析法。
    的头像 发表于 03-29 13:55 1325次阅读
    详解<b class='flag-5'>JVM</b>的<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>算法和<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>器

    JVM入门历代垃圾回收器 2

    很多人经常把这两个搞混,当然笔者刚开始的时候也是傻傻分不清楚。其实只要记住并行说的是GC 线程之间的关系,而并发说的是GC和用户线程之间的关系
    的头像 发表于 02-10 11:29 437次阅读
    <b class='flag-5'>JVM</b><b class='flag-5'>入门</b>之<b class='flag-5'>历代</b><b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>器 2

    JVM入门垃圾回收算法

    根据如何判定对象是垃圾垃圾回收算法分为两类:1、 「引用计数式垃圾收集」 (判定垃圾是通过引用计数器)别名:直接
    的头像 发表于 02-10 11:40 612次阅读
    <b class='flag-5'>JVM</b><b class='flag-5'>入门</b>之<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>算法

    详细解析JVM中的垃圾回收机制

    Java语言的一大优势在于其具有自动垃圾回收(Garbage Collection,GC)机制,让开发者无需关心内存的分配与释放。
    的头像 发表于 06-06 16:53 1342次阅读

    垃圾收集器的JVM参数配置

    本篇文章我们就来给大家介绍垃圾收集器的 JVM 参数配置。 JVM参数有很多,其实我们直接使用默认的JVM参数,不去修改都可以满足大多数情况。但是如果你想在有限的硬件资源下,部署的系统
    的头像 发表于 10-09 16:35 320次阅读
    <b class='flag-5'>垃圾</b>收集器的<b class='flag-5'>JVM</b>参数配置

    jvm参数的设置和jvm调优

    。 -XX:SurvivorRatio:设置Eden区与Survivor区的大小比例。 -XX:MaxPermSize:设置永久代的大小。 垃圾回收参数
    的头像 发表于 12-05 11:36 664次阅读

    jvm配置的mx

    用于设置JVM的最大堆内存大小,即堆的上限。当堆内存不足时,JVM会触发垃圾回收机制以释放内存。如果垃圾
    的头像 发表于 12-05 14:24 396次阅读

    智能垃圾回收箱及其控制系统

    智能高效远程控制智能垃圾回收箱本文设计了基于机械传动、嵌入式系统和物联网技术的智能垃圾回收箱及控制系统,包括结构、硬件和软件设计,以及基于机智云后台服务器的操作系统,实现了用户信息识
    的头像 发表于 04-13 08:10 607次阅读
    智能<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>箱及其控制系统

    智能垃圾回收箱控制系统硬件设计

    智能高效远程控制智能垃圾回收箱控制系统硬件部分的选型与设计是整个产品的基础,所有功能的实现都要围绕其进行开发。本章对智能垃圾回收箱控制系统的硬件进行详细设计。智能
    的头像 发表于 04-13 08:10 535次阅读
    智能<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>箱控制系统硬件设计

    智能垃圾回收箱功能实验

    需要系统地介绍智能垃圾回收箱软件硬件设计完成后的设备运行状况,包括正常工作和问题调试。同时,也要描述当所有设备正常工作时智能垃圾回收箱的操作流程。01硬件模块的试验在智能
    的头像 发表于 05-24 08:10 200次阅读
    智能<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>箱功能实验