当前位置: 首页 > article >正文

JVM/GC/CMS

CMS (Concurrent Mark Sweep)

  • jdk1.4后期版本开始引入的新gc算法
  • ParNew(新生代) + CMS(老年代)组合使用
  • 使用标记-清除算法
  • 目标:适合于B/S等对响应时间要求高的场景
  • 缺点:运行结束产生大量空间碎片
  • 缺点:由于分配给用户使用的老年代空间不足造成可能出现“Concurrent Mode Failure”

流程

在这里插入图片描述
CMS使用标记-清除算法

  • 初始标记(STW)
  • 预先清除
  • 最终标记(STW)
  • 并发清除

Concurrent Mode Failure

  • 问题:并发清除阶段应用线程和GC线程是同时运行的,也就是对象的分配和对象的清除是同时运行的。如果,分配给应用线程使用的老年代空间不足就会出现“并发模式错误”Concurrent Mode Failure。
  • GC:“并发模式错误”将引起一次Full GC,调用Serial Old收集器重新对老年代进行垃圾回收,此时的停顿时间将明显延长。
  • 解决:Concurrent Mode Failure可以通过减少"CMS初始占用内存比例" -XX:CMSInitiatingOccupancyFraction参数,以扩大应用线程可用老年代内存空间比例,进而降低出现“并发模式错误”Concurrent Mode Failure的概率。

http://www.kler.cn/news/10597.html

相关文章:

  • 别搞了 软件测试真卷不动了...
  • 公司刚来的00后真卷,上班还没2年,跳到我们公司起薪20k....
  • 21100颗星的Locust性能测试工具到底有多牛!
  • springboot 部署k8s(二)
  • Linux基础命令-seq打印数字序列
  • 数字化时代,如何通过社媒找到外贸客户?
  • 00后整顿职场,我直呼太卷了....
  • ChatGPT热潮下,因生成式AI失业的人出现,我成了第一批失业的人
  • SpringMVC03-文件上传、异常处理、拦截器
  • 在windows上安装部署cicd
  • 【C++学习笔记】十、C++设计模式-抽象工厂模式
  • 了解HTTP与HTTPS以及SSL
  • HBuilderX 开发工具
  • 设计模式之《责任链模式》
  • CentOS安装docker
  • 如何使用ChatGPT在1天内完成毕业论文
  • 停车场管理系统文件录入(C++版)
  • JAVA面试真题2023
  • 当深度学习遇上Web开发:Spring和OpenAI如何实现图片生成?
  • NumPy 秘籍中文第二版:五、音频和图像处理
  • k8s、docker关联目录占用空间太大
  • JUC编程之——线程的start方法及底层源码
  • 用Kamailio修复FreeSWITCH的sdp
  • 信息系统项目管理师第四版知识摘编:第23章 组织通用管理​
  • 【MySQL】delete和truncate的用法和区别
  • 每个企业经营者都应该了解的几个网络安全趋势
  • Loki采集Mysql errorlog,你值得拥有的错误日志聚合系统
  • C#调试与测试 | Assert(断言)
  • 【Pytorch】神经网络搭建
  • 常用位运算和二进制做权限管理