CMS初始标记(Initial Mark)与重新标记(Remark)的作用

冷漠man

冷漠man

2026-07-23

367人浏览

原创

初始标记和重新标记都必须stw,但范围极小、目的不同:前者仅标记gc roots直接可达对象以确立起点,后者修正并发标记期间的引用变动以确保准确性。

cms初始标记(initial mark)与重新标记(remark)的作用

初始标记只扫“第一层”,重新标记专治“变动漏网”。两者都必须 Stop-The-World(STW),但目的不同、范围极小,是 CMS 在精度与停顿之间做的关键取舍。

初始标记:锁定起点,只标 GC Roots 直接连的对象

它不遍历对象图,只快速扫描 GC Roots(如线程栈、静态变量、JNI 引用等)直接引用的老年代对象,以及被年轻代存活对象直接引用的老年代对象。这部分数量极少,所以 STW 时间极短——通常不到几毫秒。相当于画出一个“种子集合”,为后续并发标记提供起点。

October CMS
October CMS

October CMS 是基于 Laravel 生态的 PHP CMS,适合开发者快速构建可定制内容网站和业务后台。

下载
  • 标的是“直接可达”,不是“全部可达”
  • 不处理任何间接引用链,也不管对象是否跨代引用细节
  • 必须 STW,否则 GC Roots 状态可能在扫描中变化,导致起点不准

重新标记:修正并发期的引用变更

在并发标记阶段,应用线程持续运行,对象引用关系可能频繁修改:比如某个对象刚被新引用指向,或原有引用被断开。这些变化不会被正在运行的并发标记线程实时感知,容易造成误判(把该活的标成死的,或反之)。重新标记就是专门捕获并修正这类“浮动垃圾”和“漏标对象”的最终校验环节。

  • 重点扫描“脏卡”(Card Table 中被写入过的内存区域)和 CMS 的 Remembered Set
  • 会重新检查在并发标记期间发生过引用更新的对象及其关联路径
  • 虽需 STW,但工作量远小于完整标记,一般也控制在十几毫秒内

为什么不能只靠其中一次?

初始标记若试图覆盖全图,就会变成长时间 STW;重新标记若跳过,就会因并发干扰导致回收错误——比如把还在用的对象清掉,引发 NullPointerException。二者分工明确:前者保起点准,后者保过程稳。中间靠并发标记完成 98% 的主体工作,既不牺牲准确性,又极大压缩了用户感知的停顿。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

cms

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Maven零基础入门教程
Maven零基础入门教程

本合集由PHP中文网精心整理,提供Maven零基础入门到完整使用的保姆级教程。内容涵盖环境安装、核心配置、仓库管理及项目构建等核心知识点。通过详细步骤解析与代码示例,助你快速掌握Maven的依赖管理与自动化构建,轻松解决Java项目中的各种痛点,是新手入门与进阶的必备指南。

2026.08.05

2

18

Maven安装及配置教程
Maven安装及配置教程

本合集由PHP中文网精心整理,提供Maven安装配置与环境配置详情指南。内容涵盖Maven下载、解压安装、环境变量配置、阿里云镜像加速及本地仓库修改等全流程。教程通俗易懂,帮助开发者轻松解决依赖管理难题,快速掌握Maven核心构建技能,是Java开发者的必备实战指南。

2026.08.05

2

24

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

4

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

1

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

11

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

8

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

10

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

5

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程