常见垃圾回收器

news2025/1/19 14:39:20

1.Serial垃圾回收器

Serial(串行)收集器是最基本、历史最悠久的垃圾收集器了,是一个单线程收集器

它只会使用一个垃圾收集线程去完成垃圾收集工作

它在进行垃圾收集工作的时候必须暂停其他所有的工作线程( "Stop The World" ),直到它收集结束

 Serial垃圾回收器在回收垃圾的时候,新生代采用标记-复制算法,老年代采用标记-整理算法。

Serial 收集器由于没有线程交互的开销,自然可以获得很高的单线程收集效率

2.ParNew收集器

 Serial 收集器的多线程版本,也是新生代采用标记-复制算法,老年代采用标记-整理算法

 3.CMS垃圾回收器

尽量减少stop the world(gc线程工作的时候其他用户线程无法工作)的时间,真正做到gc线程和用户线程可以同时工作

CMS 收集器是基于 “标记-清除”算法

整个过程分为以下几个步骤:

 初始标记:暂停所有的其他线程,并记录下直接与 root 相连的对象 (不直接相连,间接相连的不标记),这是一个STW阶段,其他用户线程是不能工作的

并发标记:这个阶段,CMS线程和其他用户线程在并发执行,CMS线程会从与GC Roots直接相连的对象出发,遍历整个对象图 ,进行标记对象

重新标记: 由于上一个阶段并发标记阶段其他用户线程实际上还是在运行的,有可能用户线程在这个阶段产生了新的对象(这些新的对象是没有打上标记的),这里采用三色标记法来标记那些新产生的对象      ‘

并发清理:开启用户线程,并且CMS线程堆未标记的区域进行清扫,这个阶段如果有新增对象会被标记为黑色,不做任何处理       

最后并发重置就是把 标记过的对象取消标记

显然所有的阶段里面只有初始标记和重新标记的时候需要stop the world叫停其他用户线程,其他阶段都是CMS线程和用户线程可以并行的

                                                                                                                                                                    

三色标记算法:

黑色:这个对象及其所有的引用的对象都被遍历过,那这个对象就是黑色,黑色的对象不会被回收

灰色:这个对象被遍历过,但是它的部分引用还没被遍历过,在重新标记阶段会将这个对象标记为灰色

白色:这个对象没有被遍历过,在重新标记阶段如果是白色的话,这个对象将被回收

4.G1垃圾收集算法:

                               、

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

重新标记:

并发清理:

并发重置:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++——STL之vector详解

C——STL之vector详解🏐1.什么是vector🏐2.vector的使用🏀2.1vector的实例化🏀2.2访问遍历vector⚽2.2.1**下标[]**⚽2.2.2**迭代器**⚽2.2.3**范围for**🏀2.3.vector容量问题⚽2.3.1size和capacity⚽2.3.2reserve和re…

二叉树先、中、后遍历递归+非递归

文章目录前言思路设计思想非递归前序遍历的思路非递归中序遍历的思路非递归后序遍历的思路层序遍历的思路完整代码MyBinaryTree.hMyBinaryTree.cppMain.cpp效果展示前言 作者水平有限,全部的代码是学习前人部分原创不要搬代码,一定要借鉴学习&#xff0…

接口测试的痛点和解决办法

在做接口测试时,以下几个测试痛点,一定要仔细琢磨下: 痛点①:由于测试环境数据被改动,导致接口测试失败 这个问题,最好的办法就是重新调用数据库中的最新数据。在做测试用例时,也要考虑到实时调…

汽车服务行业概况与供应商评估方案介绍,数商云SRM系统助力多维考核供应商

近年来,汽车保有量不断增长,中国汽车市场连续多年成为全球产销第一,伴随物联网技术的不断渗透,车联网开始兴起,带给线上线下汽车相关服务行业新的发展机遇。 当前汽车服务行业整体概况 1、市场需求增加:市…

Vue基础超详细

目录 一、Vue的简介 1、什么是vue 2、vue 的特性(数据驱动视图、双向数据绑定) 3、MVVM及其工作原理 二、Vue的基本实用 1、基本使用步骤 2、配置Vue的调试工具 3、指令与过滤器 3.1内容渲染指令 4、属性绑定指令 5、使用Javascript表达式 6、事件绑…

“ 念旧真的是一件很无趣的事 “

想要的都拥有 得不到的都释然 My Jinji音频:00:0006:40 | 01 | 想通就释然 想不通就茫然 每天不停的循环 | 02 | 终于理解你曾经说的 “有些人不能做朋友” 现在我和你一样惨 | 03 | 村上春树说过: “如果一直想见谁 肯定迟早会见到” 但是他还…

android入门之创建service

1. 前言 Service意为:服务,是一种运行时用户不可见的活动机制。可以理解为它是一个没有布局的Activity。 典型的场景:音乐后台播放、后台下载。 Service不同于子线程,Service是运行在主线程中的,因此不能进行耗时操作。…

电线电缆行业MES系统,帮助企业快速应对订单变化,减少资金占用

电线电缆行业生产管理现状 电线电缆行业是典型的重资产行业,原材料成本高、产品价值高、资金占用大、产品规格型号多达数万种,BOM管理繁杂,现场管理粗放,订单经常会合并或拆分生产,对排程要求高。 1、计划制定不准确…

无分类编址CIDR

无分类编址CIDR 构成超网 将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。 方法:将网络前缀缩短(所有网络地址取交集)。 例题 某路由表中有转发接口相同的4条路由表项,其目的网络地址分别为…

Unicode编码的理解

1、Unicode 这个单词可以拆解为两部分,一个是Uni ,即英文单词unique的意思,也就是唯一的意思。code就是编码的意思。 GBK编码的理解_sgmcy的博客-CSDN博客 在上节博客里面,介绍了ASCII编码、ASCII编码表的扩展以及我们国家汉字的GBK编码。 …

详解OpenCV的椭圆曲线点坐标近似计算函数ellipse2Poly()

详解OpenCV的椭圆曲线点坐标近似计算函数ellipse2Poly() 函数ellipse2Poly()可用于近似计算椭圆曲线的像素坐标。 而前面介绍过的函数ellipse()则是直接在图像中绘制椭圆,详情见 https://www.hhai.cc/thread-174-1-1.html 函数ellipse2Poly()的C原型如下&#xff…

【Shell】find文件查找

语法格式 find [路径] [选项] [操作]选项参数对照表 常用选项 -name 查找/etc目录下以conf结尾的文件ind /etc -nam -iname 查找当前目录下文件名为aa的文件,不区分大小写 find . -iname aa -user 查找文件属主为hdfs的所有文件find . -user hdfs -group 查找文件属组为yarn的…

虹科方案 | 解决连接到IEEE 1588高可用性网络的SCADA系统的NTP同步参考问题

目前,各个行业都在朝着以太网融合的趋势发展,近年来也出现了一些可用于增强标准以太网弹性的技术创新,并被用作运营(OT)和信息技术(IT)的通用链路层。电气等具有高可用性和严格时序要求的关键领域推动了这些…

1362:家庭问题(family)

1362:家庭问题(family) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6732 通过数: 3529 【题目描述】 有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式…

GBK编码的理解

1、我们学程序的时候,所熟知的ASCII码,就是一种编码方式 计算机底层,就只认识0和1. 举个例子,以3bit为例: 所以,如果是000的话,可以对应数字0 如果是001的话,可以对应数字1 。。…

非零基础自学Golang 第13章 并发与通道 13.4 select 13.5 小结

非零基础自学Golang 文章目录非零基础自学Golang第13章 并发与通道13.4 select13.4.1 select作用13.4.2 超时13.4.3 死锁13.5 小结第13章 并发与通道 13.4 select Go语言中,通过关键字select可以监听channel上的数据流动。 select的用法和switch非常相似&#xf…

Python中的基本数据类型

文章目录前言一、字符串类型字符串表示方法二、数字类型1. 整数2.浮点数3.复数三、布尔类型总结前言 我们一般在电脑中存储的数据有多种数据类型。比如下图这张员工工资表: 表中员工姓名可以用字符串类型存储(比如"李世民"、“侯君集”&#…

Hadoop学习----HDFS

文件系统 文件系统:是一种存储和组织数据的方法,实现数据的存储、分级组织、访问和获取等操作,使得用户对文件访问和查找变得容易。文件系统使用树形目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念,用户不必关心数据底…

实验三 进程的互斥与同步

文章目录一、 实验目的二、 实验原理三、实验内容四、我的代码内容和现象1、philosopher12、philosopher2这个程序不会发生死锁,因为五、课后习题:1.什么是死锁?产生死锁的原因和必要条件是什么?2.实验中给出的伪代码流程&#xf…

Problem Set 3

1Lagrange Duality Formulate the Lagrange dual problem of the following linear programming prob-lem min cT rs.t.Ax 二b where a ∈R is variable,c ∈ R",A ∈Rkn, b ∈ Rk. 解:设拉格朗日函数为L(x,λ)cTxλT(Ax−b)\mathcal{L}(x,\lambda)…