JVM知识之三色标记算法

一、定义

三色标记算法是一种用于垃圾收集的算法,它将内存中的对象分为三种颜色:白色、灰色和黑色。标记完毕后,所有可达对象都为黑色,剩余的白色对象视为不可达,可以被清除。

  • 白色:该对象未被标记,表示垃圾对象
  • 灰色:当前对象被标记为非垃圾对象,但是它的子对象未被扫描
  • 黑色:当前对象被标记为非垃圾对象且它的子对象已被扫描

这种算法的目的是通过可达性分析来识别和回收不再被程序引用的对象,从而释放内存空间。

二、标记过程

找到所有的GC Root,并标记为灰色,然后继续往下扫描,继续向下的节点标记为灰色,上一个节点则从灰色标为黑色,重复该过程。最后标记完毕,所有可达对象都为黑色,剩余的白色对象(未被标记的对象)视为不可达,即垃圾对象,可以被清除掉。

三、优缺点

1、优点

2、缺点

传统的标记方式会伴随STW,所以对象间的引用不会发生改变。而并发标记在标记期间程序依然在运行,对象的引用可能发生改变,就会出现错标和漏标的情况。

(1)错标产生的浮动垃圾

(2)对象漏标问题

四、应用场景

1、CMS标记过程

  • 初始标记:把所有直接引用了GC Root的对象全部标记为灰色;
  • 并发标记:扫描直接引用了灰色对象的对象,并标记为灰色,原灰色对象则标记为黑色;
  • 重新标记:矫正并发标记阶段的错标问题;
  • 并发清除:清除白色对象(未被标记对象)

参考地址:

带颜色的JVM:三色标记详解_三色标记法 为什么要重新标记-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SJDW-50G高低温电子万能试验机

一.项目简介: 微机控制高低温电子万能试验机是电子技术与机械传动相结合的新型材料试验机,可以在规定的温度内完成材料测试,它具有宽广准确的加载速度和测力范围,对载荷、变形、位移的测量和控制有较高的精度和灵敏度&#xff0c…

工作学习的电脑定时关机,定时重启,定时提醒

可以直接下载工具: 定时自动关机 大家好,! 在我们学习与工作时,经常会遇到想要在完成一个任务后,再关闭电脑或对电脑重启,但这个时间点,操作电脑的人可能不能在电脑旁边,这样就需要…

电磁兼容(EMC):去耦电容设计详解

目录 1. 概念 2. 去耦电容工作机理 3. 去耦电容大小选择 4. 去耦电容PCB布局 电容在电路中不同作用有不同的称呼去耦电容、旁路电容、储能电容,而这些作用又可以统称为滤波。本文将详细解读一下三者之间的差别,并着重说明一下去耦电容的设计方法。 …

【Qt 学习笔记】Qt常用控件 | 布局管理器 | 空白项Spacer

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 布局管理器 | 添加空白Spacer 文章编号:Qt 学…

JS 实战 贪吃蛇游戏

一、css 部分 1. 居中 想要开始和暂停两个按钮居中,可以将盒子设置为弹性盒 也可以使用其他方法 【代码】 2. 将父元素设置为相对定位,偏于之后贪吃蛇长长的身子,是以父元素为基点的绝对定位,通过 left 和 top 来控制位置 二、…

【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 布局管理器 | 表单布局Form Layout 文章编号&#xff1a…

Android AV World 序

序 做Android系统开发很久了,基于高通和MTK硬件平台,使用Android10量产了一些车载项目。由于功能模块属于系统底层支撑,类似于docker,涉及到音视频的处理,及Display Graphics的一些处理,需要调试解决显示花…

【Linux】:进程切换

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux进程切换的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精…

车间人员作业行为智能检测 AI视觉在生产车间制造中的应用

车间人员作业行为智能检测系统基于神经网络人工智能视觉算法,车间人员作业行为智能检测通过对车间监控摄像头获取的视频图像进行分析和识别,实现了对人员操作行为的智能检测。系统对工人的操作环节进行分解,根据时间、动作标准等方面制定了规…

FSC认证是什么?森林认证的好处是什么?

FSC认证(Forest Stewardship Council,森林管理委员会认证)是一种运用市场机制来促进森林可持续经营,实现生态、社会和经济目标的工具。以下是关于FSC认证的详细介绍: 一、FSC认证包括两个方面: 森林经营认…

Day 38 防火墙技术IPtables

一:防火墙简介 1.简介 ​ iptables其实并不是真正的防火墙,我们可以把他理解为一个客户端的代理,用户是通过iptables这个代理,将用户的安全设定执行到对应的“安全框架”中,这个“安全框架”才是真正的防火墙。这个框…

极光将于2024年6月6日公布2024年第一季度财报

2024年5月23日,中国深圳——中国领先的客户互动和营销科技服务商极光(Aurora Mobile,纳斯达克股票代码:JG)(以下称“极光”或“公司”)宣布将于2024年6月6日周四美国股市开市前公布截至2024年3月…

Web前端开发技术-格式化文本 Web页面初步设计

目录 Web页面初步设计 标题字标记 基本语法: 语法说明: 添加空格与特殊符号 基本语法: 语法说明: 特殊字符对应的代码: 代码解释: 格式化文本标记 文本修饰标记 计算机输出标记 字体font标记 基本语法: 属…

精准键位提示,键盘盲打轻松入门

在说明精准键位提示之前,我们先来看一张图: 这是一张标准的基准键位图,也就是打字时我们双手的8个手指放在基准键位上,在打不同的字母时,我们的手指以基准键位为中心,或上、或下、或左、或右,在…

2024 中青杯高校数学建模竞赛(B题)数学建模完整思路+完整代码全解全析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024 长三角高校数学建模竞赛(A题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过…

Cadence HDL如何拷贝模版项目?

【记录】防止遗忘~ 首先,由于每次绘制原理图都要重新设置各种背景颜色,库路径等等,超级不方便,所以发现可以通过绘制一次模版项目,往后只用拷贝模版项目就可以了。 Cadence HDL新建项目时拷贝模版项目,再…

Vue2全局封装modal弹框

Vue2全局封装modal弹框使用&#xff1a; 一.components下封装 1.index.js import ModalCheck from ./modal-check.vue export default ModalCheck2.modal-check.vue <template><div><Modalv-model"selSingleShow":title"editTitle(convertCa…

二叉树遍历操作详解

目录 一、思路详解 1.1 递归思路 1.2 递归分支图 1.3 递归栈帧图 二、C语言实现 2.1 前序遍历 2.2 中序遍历 2.3 后序遍历 三、查找值为x的结点 3.1 递归思路 3.2 C语言代码 一、思路详解 采用递归的思想解决问题&#xff0c;以高度为3的满二叉树为例。 1.1 递归思…

FBB-Frontiers in Bioengineering and Biotechnology

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、投稿咨询 一、期刊简介 Frontiers in Bioengineering and Biotechnology是专注生物工程和生物技术领域的开放获取期刊。 研究范围涵盖生物材料、生物力学、生物工艺工程、生物安全和生物安保&#xff0c;生物传…