cms (concurrent mark sweep) 基于标记-清除 算法实现的。获取最短停顿时间的收集器

一。主要步骤:

1. 初始化标记 ( inittial mark) :需要stop world

仅标记gc root(系统类加载器,线程栈对象,本地栈对象等) 可以直接关联到的对象,由于只会标记第一层,所以很快

2.并发标记 (concureny mark): 耗时最长

与应用线程同时执行,不需要 stop world,根据1的结果,标记全部对象

3.重新标记(remark):需要stop world

标记 并发标记过程中由于用户运行而产生变化的对象,耗时较短

4.并发清除

二。缺点

1. cpu敏感

2. 无法处理浮动垃圾(cms运行阶段内存无法满足用户线程的需要:1 老年代申请内存过快,2.新生代过来的对象过多,),导致full gc,则使用SerialOld做后备收集器

3.基于 标记-清除算法实现,会产生过多的垃圾碎片,解决方案:fullGC 进行碎片压缩

cms java垃圾回收_java cms垃圾回收器总结相关推荐

  1. java 什么时候进行垃圾回收_Java中垃圾回收有什么目的?什么时候进行垃圾回收?...

    仅提供一个大致的思路: 垃圾回收(gc)的目的是释放堆中不需要保存的对象,达到内存的充分利用. 1.回收哪些对象的判定 垃圾回收最简单的思路是采用引用计数的方式,即记录对象被引用的次数,直到一段时间内 ...

  2. 【11-JVM面试专题-说说你知道的垃圾回收算法?垃圾回收器你知道吗?CMS、G1和ZGC垃圾回收器你有过了解吗?】

    JVM面试专题-说说你知道的垃圾回收算法?垃圾回收器你知道吗?CMS.G1和ZGC垃圾回收器你有过了解吗? JVM面试专题-说说你知道的垃圾回收算法?垃圾回收器你知道吗?CMS.G1和ZGC垃圾回收器 ...

  3. java 垃圾回收GC(CMS、G1)原理及调优

    概述 本文介绍GC基础原理和理论,GC调优方法思路和方法,基于Hotspot jdk1.8,学习之后将了解如何对生产系统出现的GC问题进行排查解决 阅读时长约30分钟,内容主要如下: GC基础原理,涉 ...

  4. java中垃圾收集_Java中垃圾回收机制

    "猪能吃的是湿垃圾,猪不吃的是干垃圾,猪吃了会死的是有害垃圾,卖了能买猪的是干垃圾 ......"最近,上海人民都快被垃圾分类弄疯了.那作为程序员的你,知道在Java中是怎么垃圾回 ...

  5. java 强制垃圾回收_Java垃圾回收机制

    Java垃圾回收机制 垃圾回收机制用到finalize.当程序创建对象.数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存中,当这块内存不再被任何引用变量引用时,这块内存 ...

  6. 垃圾回收算法以及垃圾回收器_什么是垃圾回收?

    垃圾回收算法以及垃圾回收器 以下是我们的垃圾收集手册中的一个示例,该手册将在接下来的几周内发布. 同时,花点时间熟悉垃圾收集的基础知识-这将是本书的第一章. 乍一看,垃圾收集应该处理顾名思义的问题–查 ...

  7. 垃圾回收算法与垃圾回收器

    Java与C++等语言最大的技术区别:自动化的垃圾回收机制(GC) 为什么要了解GC和内存分配策略 1.面试需要 2.GC对应用的性能是有影响的: 3.写代码有好处 栈:栈中的生命周期是跟随线程,所以 ...

  8. JVM初学之JVM的垃圾回收机制与垃圾回收器

    如何判断对象是否"已死": 首先,我们要对对象进行垃圾回收之前,就必须要判断对象是否"已死",也就是是否可回收.这里有两种判断逻辑: 引用计数法: 在对象内部维 ...

  9. 2 自动内存管理机制(一)运行时数据区域、垃圾回收算法和垃圾回收器

    文章目录 自动内存管理机制(一)运行时数据区域.垃圾回收算法和垃圾回收器 运行时数据区域 垃圾收集算法(方法论) 垃圾收集器(具体实现) 附录 响应时间和吞吐量 参考 自动内存管理机制(一)运行时数据 ...

最新文章

  1. 深度学习:反向传播(back-propagation)
  2. Mozilla开发全新的公开网络API WebXR 来实现增强现实
  3. cuid卡写入后锁死_荣耀手机NFC升级了:公交、门禁、支付、饭卡、加密卡还能写卡...
  4. python 的内存回收,及深浅Copy详解
  5. Programming 2D Games 读书笔记(第二章)
  6. 【AI视野·今日CV 计算机视觉论文速览 第164期】Fri, 18 Oct 2019
  7. 浅谈数据结构-二叉排序树
  8. 《软件工程进阶》-疑难(作业)
  9. idft重建图像 matlab_不可见成为可见!超材料和 AI 融合,洛桑联邦理工破译了声音图像...
  10. C++奥赛一本通递推题解
  11. 大数据可视化的好处有哪些
  12. 古希腊之争(一)详解(C++)
  13. c语言注释部分两侧的分界符号分别是,C语言程序设计基础教程 - 习题答案
  14. 财务 - 注册会计师
  15. linux环境下 Redis 配置文件
  16. 软著申请流程与方法详解
  17. ajax串数组包含双引号,解决AJAX请求中含有数组的办法
  18. iOS 3级滚动地址
  19. UEFI启动+GPT分区模式下双硬盘SSD+HDD+Win10安装Ubuntu18.04.1组成双系统
  20. Mac电脑如何快速回到桌面?

热门文章

  1. 列举在Web前端开发中经常会设置的特殊样式!
  2. Servlet基本概念及执行流程
  3. python返回文件行号_用python比较两个文件中内容的不同之处, 并输出行号和内容....
  4. 电气论文实现:电力网络之 通过计算机得到电力网络节点阻抗矩阵(matlab)
  5. 使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标,多个py文件打包exe)
  6. 自动化办公之excel教程(4):使用艺术字,图片,图形美化工作表
  7. VTK:PCA用法实战
  8. VTK:标量条形 Actor用法实战
  9. boost::sort模块实现跨并行线程的整数排序速度基准的测试程序
  10. boost::hana::make用法的测试程序