JVM虚拟机:垃圾回收器之CMS(老年代)

news2025/1/16 17:45:38

本文重点

在前面的课程中我们学习了Serial和PO垃圾回收器,本文将学习一种新的在老年代使用的垃圾回收器CMS。

特点

CMS收集器是一种以获取最短回收停顿时间为目标的收集器(还是会有短暂的STW),适合互联网或者B/S系统的服务器上,这类应用尤其重视服务器的响应速度,希望系统停顿时间最短。CMS非常适合堆内存大、CPU核数多的服务器端应用,也是G1出现之前大型应用的首选收集器。

运行过程

如图所示,它会经历四个过程:

  • 初始标记(CMS initial mark),会有短暂的停顿,标记GC Roots直接关联的对象
  • 并发标记(CMS concurrent mark)和用户线程一起,标记全部对象(最耗时)
  • 重新标记(CMS remark),会有短暂的停顿,这个过程会修正由于用户程序继续运行而导致标记产生变动的那一部分对象的标记记录
  • 并发清除(CMS concurrent sweep)和用户线程一起,清除GC不可达的对象,直接基于标记结果,直接清除对象。

有点

CMS的优点:并发收集停顿低

缺点

浮动垃圾

内存碎片

浮动垃圾

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1197457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL必知会(二)-SQL查询篇(6)-创建计算字段

第7课、创建计算字段 1)拼接字段 需求:检索Vendors 表包含供应商的名称和地址的所有信息,返回结果需要把地址括号起来。 SELECT vend_name ( vend_country ) FROM Vendors ORDER BY vend_name;-- 以下例子与上面例子相同工作 SELECT ve…

Rust的崛起:现代必备编程语言,是时候该考虑加入学习了

在不断变化的编程环境中,新的语言和框架如雨后春笋般涌现,需要一个真正强大且设计良好的工具才能脱颖而出。在这些工具中,Rust 已成为效率、安全性和性能的灯塔。从它作为 Mozilla 的一个副项目到它在软件行业中不可否认的增长,Ru…

PHP中传值与引用的区别

在PHP中,变量的传递方式主要分为传值和传引用两种。这两种方式在操作中有一些重要的区别,影响着变量在函数调用或赋值操作中的表现。下面详细解释一下这两种传递方式的区别。 传值(By Value) 传值是指将变量的值复制一份传递给函…

Python环境安装、Pycharm开发工具安装(IDE)

Python下载 Python官网 Python安装 Python安装成功 Pycharm集成开发工具下载(IDE) PC集成开发工具 Pycharm集成开发工具安装(IDE) 安装完成 添加环境变量(前面勾选了Path不用配置) (1&…

个人技术支持

本人目前从事 cnc 自动编程相关职业,主要还是做上位机开发,2021年之前一直从事 Unity3d 开发,本来也是个游戏程序员,后面也是大环境不好,改做了上位机开发,没想到上位机行业现在也是这么不好找工作。 最近…

java 类和对象 (图文搭配,万字详解!!)

关于java类和对象,我们要掌握几个重点! 1.类的定义方式以及对象的实例化 2.类中的成员变量和成员方法的使用 3.对象的整个初始化过程 4.封装特性 5.代码块 目录 一、面向对象的初步认识 1.1 什么是面向对象 1.2 面向对象与面向过程 1.2.1传统洗…

【电路笔记】-节点电压分析和网状电流分析

节点电压分析和网状电流分析 文章目录 节点电压分析和网状电流分析1、节点电压分析1.1 概述1.2 示例 2、网格电流分析2.1 概述2.2 示例 3、总结 正如我们在上一篇介绍电路分析基本定律的文章中所看到的,基尔霍夫电路定律 (KCL) 是计算任何电路中未知电压和电流的强大…

[蓝桥杯复盘] 第 3 场双周赛20231111

[蓝桥杯复盘] 第 3 场双周赛20231111 总结深秋的苹果1. 题目描述2. 思路分析3. 代码实现 鲜花之海1. 题目描述2. 思路分析3. 代码实现 斐波拉契跳跃2. 思路分析3. 代码实现 星石传送阵2. 思路分析3. 代码实现 六、参考链接 总结 做了后4题。https://www.lanqiao.cn/oj-contes…

SqlServerAgent当前未运行,因此无法将此操作通知他。错误:22022

问题:SqlServerAgent当前未运行,因此无法将此操作通知他。(Microsoft SQL Server,错误:22022) 解决方案: 1.Win R 输入 services.msc 后,点击【确定】按钮 2.选择SQL Server 代理…

ObjectArx动态加载及卸载自定义菜单

上节中我们介绍了如何制作自定义菜单即cuix文件:给CAD中添加自定义菜单CUIX-CSDN博客https://blog.csdn.net/qianlixiaomage/article/details/134349794在此基础上,我们开发时通常需要在ObjectArx程序中进行动态的添加或者删除cuix菜单。 创建ObjectArx…

php性能追踪与分析

PHP扩展下载:https://pecl.php.net/package/xhprof php.ini配置 [xhprof] extensionxhprof xhprof.output_dir/temp/xhprof auto_prepend_file /temp/inject_xhprof.php if(php_sapi_name() cli) {return; }$xhprof_config[enabled]1;if(!empty($xhprof_config…

数据挖掘:分类,聚类,关联关系,回归

数据挖掘: 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学&…

C语言求解猴子分桃问题

题目: 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了 一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分 成五份,又多了一个,它同样把多…

基于springboot+vue的校园闲置物品交易系统

运行环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven 项目介绍 本文从管…

补坑:Java的字符串String类(2):一些OJ题目

有关String的方法可以看看我上一篇博客 补坑:Java的字符串String类(1)-CSDN博客 387. 字符串中的第一个唯一字符 - 力扣(LeetCode) 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它…

常见面试题-分布式锁

Redisson 分布式锁?在项目中哪里使用?多久会进行释放?如何加强一个分布式锁? 答: 什么时候需要使用分布式锁呢? 在分布式的场景下,使用 Java 的单机锁并不可以保证多个应用的同时操作共享资源…

《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透

利用DNS协议进行隧道穿透 一.前言二.前文推荐三. 利用SSH协议进行隧道穿透1.SSH隧道-本地端口转发2.SSH隧道-远程端口转发3.SSH隧道-动态端口转发 四.本篇总结 一.前言 SSH(Secure Shell)协议是一种加密的网络传输协议,它可以在不安全的网络…

Zephyr-7B论文解析及全量训练、Lora训练

文章目录 一、Zephyr:Direct Distillation of LM Alignment1.1 开发经过1.1.1 Zephyr-7B-alpha1.1.2 Zephyr-7B-beta 1.2 摘要1.3 相关工作1.4 算法1.4.1 蒸馏监督微调(dSFT)1.4.2 基于偏好的AI反馈 (AIF)1.4.3 直接蒸馏偏好优化&…

VB.NET—Bug调试(参数话查询、附近语法错误)

目录 前言: BUG是什么! 事情的经过: 过程: 错误一: 错误二: 总结: 前言: BUG是什么! 在计算机科学中,BUG是指程序中的错误或缺陷,它通过是值代码中的错误、逻辑错误、语法错误、运行时错误等相关问题,这些问题…

Leetcode2833. 距离原点最远的点

Every day a Leetcode 题目来源:2833. 距离原点最远的点 解法1:贪心 要使得到达的距离原点最远的点,就看 left 和 right 谁大,将 left 和 right 作为矢量相加,再往同方向加上 underline。 答案即为 abs(left - rig…