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

CMS垃圾收集器

时间:2024-03-06 15:45:47浏览次数:32  
标签:标记 收集器 并发 GC 垃圾 CMS

CMS GC的英文名为:“Mostly Concurrent Mark and Sweep Garbage Collector” (最大-并发-标记-清除-垃圾收集器)。
作用范围: 老年代
算法: 并发标记清除算法。
启用参数:-XX:+UseConMarkSweepGC默认回收线程数:(处理器核心数量 + 3)/4
Java9之后使用CMS垃圾收集器后,默认年轻代就为ParNew收集器,并且不可更改,同时JDK9之后被标记为不推荐使用,JDK14就被删除了。

设计目标/优点:避免在老年代垃圾收集时出现长时间的卡顿,主要通过两种手段来达成此目标:

第一,不对老年代进行整理,而是使用空闲列表(free-list)来管理内存空间的回收
第二,在mark-and-sweep(标记-清除)阶段的大部分工作和应用线程一起并发执行。

适用场景:

GC过程短暂,低延迟,适合对延迟要求较高的系统

如果服务器是多核CPU,并且主要调优目标是降低GC停顿导致的系统延迟,那么使用CMS是个很明智的选择。通过减少每一次GC停顿的时间,很多时候会直接改善用户体验。因为多数情况下有部分CPU资源被垃圾回收器线程消耗,所以在CPU资源受限的情况下,CMS GC会比并行GC的吞吐量差一些(对于绝大部分系统,这个吞吐和延迟的差别应该都不明显)
在实际情况中,进行老年代的并发回收时,可能会伴随多次年轻代的minor GC。在这种情况下full GC的日志中就会掺杂着多次minor GC事件

CMS GC的几个大阶段

1、初始标记(CMS initial mark)
2、并发标记(CMS concurrent mark)
3、重新标记(CMS remark)
4、并发清除(CMS concurrent sweep)

标签:标记,收集器,并发,GC,垃圾,CMS
From: https://www.cnblogs.com/Stephen-leg/p/18056767

相关文章

  • Java11改进的垃圾回收器
       传统的C/C++等编程语言,需要程序员负责回收已经分配的内存。显示进行垃圾回收是一件比较困难的事情,因为程序员并不总是知道内存应该何时被释放。如果一些分配出去的内存得不及时回收,就会引起系统运行速度下降,甚至导致程序瘫痪,这种现象被称为内存泄漏。总体而言,显示进行垃圾......
  • 9 JVM垃圾回收
    9JVM垃圾回收方法区的回收方法区中能回收的内容主要就是不再使用的类。判定一个类可以被回收,需要同时满足下面三个条件:1.此类所有实例对象都已经被回收,在堆中不存在任何该类的实例对象以及子类对象2.加载该类的类加载器已经被回收3.该类对应的java.lang.Class对象没有在任......
  • 易基因:NAR:RCMS编辑系统在特定细胞RNA位点的靶向m5C甲基化和去甲基化研究|项目文章
    喜讯!易基因表观转录组学RNA-BS技术服务见刊《核酸研究》大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。2024年2月15日,吉林大学张涛、赵飞宇、李金泽为共同第一作者,吉林大学李占军、隋婷婷及赖良学为共同通讯在《NucleicAcidsResearch》(NAR/IF14.9)发表题为“Pro......
  • P1156 垃圾陷阱
    原题链接题解太妙了如果能出去,那么出去的时间一定为让我出去的那个垃圾掉落的时间,且在此之前我所在的高度能撑到我垃圾掉落如果出不去,我肯定一直呆在井底不动所以我们可以以高度为变量设每个高度能撑到的最久的时间而每个垃圾在拿到的一瞬间要么吃要么搭,所以我们穷举,两个都......
  • AI智能分析网关V4智慧环保/智慧垃圾站视频智能分析与监控方案
    一、背景介绍随着城市化进程的加速,垃圾处理问题日益受到人们的关注,传统的垃圾站管理方式已经无法满足现代社会的需求。针对当前垃圾站的监管需求,TSINGSEE青犀可基于旗下视频智能检测AI智能分析网关V4与安防监控视频综合管理系统EasyCVR平台,打造智慧垃圾站视频监控与智能分析方案......
  • SiteServer CMS远程模板下载getshell漏洞导致的黑SEO利用分析溯源
    前言某日中午,涉及一代理商客户网站发现异常SQ内容,要求进行溯源分析并找出根本原因。0x01初步分析通过提供的链接(www.xxx.com.cn/2023j19tPLKn2/55151),确认涉及黑帽SEO活动,通过百度搜索进一步验证也证实了这一点。0x02日志分析黑客常常在植入菠菜或非法广告的网站中设置后......
  • 内存与垃圾回收篇之(四)程序计数器
    程序计数器(PC寄存器)1.PCRegister介绍​ JVM中的程序计数寄存器(ProgramCounterRegister)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。​ 这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数......
  • 内存与垃圾回收篇之(三)运行时数据区概述及线程
    运行时数据区概述及线程1.概述经过类加载器子系统之后,方法区中就保存了运行时类本身。​ 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。......
  • 内存与垃圾回收篇之(二)类加载器子系统
    类加载器子系统1.内存结构概述如果自己手写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器和执行引擎2.类的加载器及类加载过程2.1类加载器子系统的作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责c......
  • 内存与垃圾回收篇之(一)JVM与Java体系结构
    JVM与Java体系结构1.前言JVM拥有当前最前沿、最成熟的垃圾回收算法JIT:即时编译器AOT:提前编译器JVM:代码托管技术拓展:前端编译器:负责把Java文件编译成Class文件,如Sun的Javac;后端运行期编译器(JIT编译器):负责把Class文件的字节码转换成机器码,如HotSpot的C1,C2编译器;静态提前......