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

91-java cms垃圾回收器

Java中的CMS(Concurrent Mark Sweep)垃圾收集器是一种老年代垃圾收集器,适用于处理老年代的垃圾收集。它使用标记-清除算法,但通过并发的方式来减少垃圾收集对应用的影响

CMS垃圾收集器有以下几个阶段:

  1. 初始化标记(Initial Mark):这个阶段会停止所有的应用线程,并记录下直接与根节点相连的对象。

  2. 并发标记(Concurrent Mark):在初始化标记的基础上继续进行垃圾收集,同时应用线程继续运行。

  3. 并发预清理(Concurrent Preclean):为了减少标记阶段的开销,预先清理一些已经死亡的对象。

  4. 重新标记(Remark):停止所有应用线程,重新标记在并发标记阶段发生变动的对象。

  5. 并发清除(Concurrent Sweep):垃圾收集器线程开始清除未被标记的对象,而应用线程继续运行。

  6. 并发重置(Concurrent Reset):这个阶段为下一次GC做准备,重置记录的垃圾收集信息。

CMS垃圾收集器的优点是低延迟,但是其缺点也很明显,包括:

  • 对CPU资源非常敏感。

  • 无法处理浮动垃圾,可能导致"Concurrent Mode Failure",这时候会退化成旧的标记-清除算法进行垃圾收集,停止所有应用线程。

  • 因为并发执行,所以无法保证垃圾收集过程中的内存空间的一致性,可能产生不一致的垃圾收集器根。


http://www.kler.cn/a/304148.html

相关文章:

  • 容器技术在DevOps中的应用
  • Autosar CP 基于CAN的时间同步规范导读
  • ubuntu20.04安装FLIR灰点相机BFS-PGE-16S2C-CS的ROS驱动
  • NVIDIA Isaac Sim 仿真平台体验测评
  • Kafka - 启用安全通信和认证机制_SSL + SASL
  • 在 Ubuntu 上安装 `.deb` 软件包有几种方法
  • java 长连接中的sse与websocket含义, 两者的区别
  • C++ Qt开发:运用QJSON模块解析数据
  • 编写注册接口与登录认证
  • 动态代理相关知识点
  • Zabbix监控自动化
  • 查找算法--python
  • NS3的3.36版本将Eclipse作IDE
  • python读写CSV文件
  • ctf Mark loves cat (超详细记录)
  • Redis缓存和Mysql数据一致性问题
  • Mybatis接受查询结果的情况
  • 使用 @NotEmpty、@NotBlank、@NotNull 注解进行参数校验
  • 多线程爬虫接入代理IP:高效数据抓取的秘诀
  • 工具包(Commons-io)工具包(hutool)
  • flink中disableOperatorChaining() 的详解
  • R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用
  • 理解大型语言模型(LLM)中的隐藏层
  • 【Hot100】LeetCode—198. 打家劫舍
  • 解决缺少genconfig
  • Rust 变量基础知识