JVM中 CMS垃圾收集器

1 篇文章 0 订阅

前言

垃圾收集器,首先要有个这样认知现有的所有垃圾回收方案中,没有任何一种是不需要停顿,只是停顿的时间长短不同而已

什么是CMS

CMS(Concurrent Mark Sweep)基于标记—清除算法实现的并行垃圾收集器。它是以最短的停顿时间进行垃圾回收。响应快,体验好,适合B/S架构

模型

在这里插入图片描述

回收步骤

  • 初始标记

    需要停顿,仅标记一下GC Roots 能直接关联的对象,速度快

  • 并发标记

    对初始标记GC Roots 进行追踪过程

  • 重新标记

    需要停顿,修正并发标记期间因为程序运行而导致标记发生变化的那一部分对象的标记记录,比如:浮动垃圾。停顿时间比初始标记长,远比并发时间短

  • 并发清除

    清除被标记的垃圾

特点

并发处理、停顿短

缺点

  • 与应用程序并发执行,会占用一部分CPU资源,程序变慢,吞吐量降低
  • 浮动垃圾产生。并发清除时程序还在运行,程序运行会产生新的垃圾,这些垃圾产生在标记之后,本次无法被清理,下次才会被清理,这部分垃圾浮动垃圾
  • 使用 标记-清除 算法,会产生大量碎片空间。大对象空间不足时,会提前发生FullGC
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值