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

CMS收集器和G1收集器

时间:2023-07-17 16:46:55浏览次数:36  
标签:G1 标记 收集器 并发 线程 内存 CMS

CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。
CMS的运作步骤分为以下四个:

  • 初始标记
  • 并发标记
  • 重新标记
  • 并发清除

其中,初始标记和重新标记都会引起stop the world。初始标记仅仅只是标记一下GC Roots能直接管理到的对象,速度很快,并发标记阶段就是进行GC Roots Tracing的过程,而重新标记则是修正并发标记过程中用户线程继续执行可能产生新的垃圾。
由于整个过程中耗时最长的并发标记和并发清除过程收集器线程都可以与用户线程一起工作,所以,整体来说,CMS收集器的内存回收过程是与用户线程一起并发执行的。通过下面这张图可以清楚看到CMS运作过程中需要停顿的时间。
image

G1收集器是JVM中的一种垃圾收集器,它主要面向于大规模内存的场景,能够高效地管理内存并降低延迟。G1收集器的垃圾回收过程可以分为以下几个步骤:

  • 初始标记(Initial Marking):在这个阶段,G1收集器会暂停所有线程,并对整个堆内存中的对象进行标记,记录哪些对象是可达的。
  • 并发标记(Concurrent Marking):在这个阶段,G1收集器会恢复所有线程,并使用并发标记算法对堆内存中的对象进行标记,记录哪些对象是可达的。这个阶段是与应用程序并发执行的,因此不会对应用程序的性能造成影响。
  • 最终标记(Final Marking):在这个阶段,G1收集器会再次暂停所有线程,并对堆内存中的对象进行标记,修正并发标记阶段可能出现的错误,确保所有不可达的对象都被正确地标记为垃圾对象。
  • 筛选回收(Live Data Counting and Evacuation):在这个阶段,G1收集器会对每个Region中的存活对象进行统计,并根据对象的存活时间将Region分为多个优先级。然后,根据用户的设置和优先级,制定回收计划,将存活对象移动到其他Region中,并清除垃圾对象所在的Region。这个阶段也是在线程暂停的状态下进行的,因此对应用程序的性能有一定的影响。

总的来说,G1收集器的垃圾回收过程相对复杂,但是它可以通过分区管理内存、优先级调度、增量式垃圾收集、并发标记清除和内存压缩等技术来提高程序的性能和稳定性。

标签:G1,标记,收集器,并发,线程,内存,CMS
From: https://www.cnblogs.com/xiaoovo/p/17560508.html

相关文章

  • PHPCMS shtml设置_PHPCms教程
    什么是SSI?SSI是英文ServerSideIncludes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针。SSI具有强大的功能,只要使用一条简单的SSI命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行shell和CGI脚本程......
  • phpcms本地网站迁移至虚拟主机的教程_PHPCms教程
    本人已成功将2008调试的网站迁移至虚拟主机中,现将有关设置和应注意的地方拿来与大家一道分享。由于是一次性成功,迁移后没有碰到任何问题(至少现在没有),因此以下提到的不一定全面,请大家谅解。[首先要在虚拟主机中根据第一、二条全新安装phpcms2008]第一,安装环境:本机电脑到虚拟主......
  • PhpCms系统设置:config.inc.php文件配置说明_PHPCms教程
    config.inc.php(include/config.inc.php)文件包含了系统运行的核心配置,详细参数介绍如下://数据库配置信息define('DB_HOST', 'localhost'); //数据库服务器主机地址define('DB_USER', 'root'); //数据库帐号define('DB_PW', 'root'); //数据库密码define(&#......
  • JVM(十六)七种垃圾收集器
    JVM(十六)七种垃圾收集器0垃圾回收器的组合关系:实现相连的垃圾回收器表示可以搭配使用:SerialGC-SerialOldGCParNewGC-CMSGCParallelScavengeGC-ParallelOldGC还有一条CMSGC-SerialOldGC表示CMS出现“ConcurrentModeFailure”后的备选方案(红色虚......
  • 易优eyoucms商城产品数量删除,默认只能下单一个
    在修改商城的时候,想把选择数量的去掉,不管是加入购物车或是立即购买,能不能默认只能选择一个。  我尝试把下边代码删掉,则不能加入购物车或是立即购买了 解决办法:<divclass="ey-number">改为 <divclass="ey-number"style="display:none;">不需要删除,隐藏即可。......
  • 易优eyoucms热门关键字标签
    【基础用法】名称:hotwords功能:获取网站搜索的热门关键字 语法:{eyou:hotwordsnum='6'subday='365'maxlength='20'id='field'}  <ahref='{$field.url}'target="_blank">{$field.word}</a><br/>{/eyou:h......
  • Eyoucms默认错误提示信息说明
    如果没有定义易优cms任何的验证提示信息,EYOU系统会显示默认的错误信息,例如:$rule=[‘name’=>‘require|max:25’,‘age’=>‘number|between:1,120′,’email’=>’email’,];$data=[‘name’=>‘thinkphp’,‘age’=>121,’email’=>‘[email protected]......
  • 易优eyoucms表单验证场景指南
    5.0.4增加hasScene方法用于检查是否存在验证场景可以在定义验证规则的时候定义场景,并且验证不同场景的数据,例如:$rule=['name'=>'require|max:25','age'=>'number|between:1,120′,'email'=>'email',];$msg=['name.require'......
  • Eyoucms安全设置教程(目录权限设置)
    大致整理易优cms的网站目录权限设置如下,此教程仅供参考,如有问题欢迎反馈纠正。【安装环境】1、推荐采用apache服务器环境,官方已经内置一些限制执行脚本的权限,分别在各自文件夹的 .htaccess里,比如:图片上传目录2、如果是用nginx服务器环境,可以参考.htaccess文件对nginx做限......
  • 帝国cms 全站伪静态规则设置
    帝国cms因为目前来说是免费使用得,而且对于数据承载量以及其他栏目设置方面还是比较友好得,现在大部分网站已经采用帝国cms系统来做了。伪静态相对于静态来说会有更多得好处,今天就说下帝国cms伪静态规则设置方面得问题帝国CMS伪静态nginx版:rewrite^([^\.]*)/listinfo-(.+?)-(.+......