首页 > 其他分享 >CMS收集器

CMS收集器

时间:2023-02-07 16:04:29浏览次数:26  
标签:标记 收集器 并发 线程 垃圾 CMS

Concurrent Mark Sweep(CMS),是一种年老代垃圾收集器,其最主要目标是获取最短垃圾回收停顿时间,和其他年老代使用标记-整理算法不同,它使用多线程的标记-清除算法。最短的垃圾收集停顿时间可以为交互比较高的程序提供用户体验。

CMS工作机制相比其他的垃圾收集器来说更复杂,整个过程分为以下4个阶段:

初始标记:只是标记下GC Roots能直接关联的对象,速度很快,仍然需要暂停所有的工作线程。

并发标记:进行GC roots跟踪的过程,和用户线程一起工作,不需要暂停工作线程。

重新标记:为了修正在并发标记期间,因用户程序继续运行而导致标记产生变动的那一部分对象的标记记录,仍然需要暂停所有的工作线程。

并发清除:清除GC Roots不可达对象,和用户线程一起工作,不需要暂停工作线程。由于耗时最长的并发标记和并发清除过程中,垃圾收集线程可以和用户现在一起并发工作,所以总体上来看,CMS收集器和内存回收和用户线程是一起并发地执行。

标签:标记,收集器,并发,线程,垃圾,CMS
From: https://blog.51cto.com/u_11315052/6042213

相关文章

  • G1收集器
    Carbagefirst垃圾收集器是目前垃圾收集器理论发展的最前沿成果,相比CMS收集器,G1收集器两个最突出的改进是:1.基于标记-整理算法,不产生内存碎片。2.可以非常精准控制停顿时间,......
  • 推荐一个基于微前端架构的极速微应用开发框架StartCMS
    介绍StartCMS是一个基于ThinkPHP6.0+、ElementUI、MicroApp的极速微应用开发框架前端不限技术栈,支持Vue2、Vue3、Vite、React、Rangular...后端不限制语言,支持PHP、Java、......
  • 织梦dedecms dede:arclist下做分页和分页样式
    1、在HTML模板头文件head引入下面代码:<scriptlanguage="javascript"type="text/javascript"src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script><scrip......
  • 基于STM32使用HAL库手把手移植华为LiteOS系统并使用CMSIS接口API
    基于STM32使用HAL库手把手移植华为LiteOS系统并使用CMSIS接口API目录​​基于STM32使用HAL库手把手移植华为LiteOS系统并使用CMSIS接口API​​​​(一)说明​​​​(二)裸机工程......
  • 什么是 Headless CMS?
    什么是HeadlessCMS?Headless内容管理是当今Web设计的关键开发,它将前端客户端应用程序与后端内容管理系统分离开。因此,HeadlessCMS负责(后端)内容管理服务,以及允许(前端)......
  • 垃圾收集器必问系列—G1
    本文已收录至Github,推荐阅读......
  • 510cms网站上传大马
    首先用到命令sqlmap-u“网站地址”--os-shell,挂马之后,就可以使用linux命令了,同时可以看到下图的地址接着如下图,将选择好的php大马文件上传,页面显示uploaded就表示上传......
  • PbootCMS后台
    开头三句话: <title>{pboot:pagetitle}</title><metaname="keywords"content="{pboot:pagekeywords}"><metaname="description"content="{pboot:pagedescription}......
  • Dedecms织梦TAG中文标签改成英文+数字地址的方法
    最近发现一些关于织梦的很多问题,特别是最新版本的织梦还不如老板的稳定好用,最大的问题就是织梦官方给出的新版本默认的TAG标签是中文的,所以很多人没注意到这一点,中文标签路......
  • 读Java8函数式编程笔记03_高级集合类和收集器
    1. 方法引用1.1. 一种引用方法的轻量级语法1.1.1. 提供了一种简短的语法1.1.2. 标准语法为Classname::methodName1.2. 凡是使用Lambda表达式的地方,就可以使用1.......