目录
- 前言
- 垃圾收集器类型
- 1. Serial收集器
- 1.1 定义
- 1.2 优点
- 1.3 使用的垃圾收集算法
- 1.4 应用场景
- 1.5 工作流程
- 2. Serial Old收集器
- 2.1 定义
- 2.2 优点
- 2.3 使用的垃圾收集算法
- 2.4 应用场景
- 2.5 工作流程
- 3. ParNew 收集器
- 3.1 定义
- 3.2 优点
- 3.3 使用的垃圾收集算法
- 3.4 应用场景
- 3.5 工作流程
- 4. Parallel Scavenge收集器
- 4.1 定义
- 4.2 特点
- 4.3 使用的垃圾收集算法
- 4.4 应用场景
- 4.5 工作流程
- 5. Parallel Old收集器
- 5.1 定义
- 5.2 特点
- 5.3 使用的垃圾收集算法
- 5.4 应用场景
- 5.5 工作流程
- 6. CMS收集器
- 6.1 定义
- 6.2 特点
- 6.3 使用的垃圾收集算法
- 6.4 应用场景
- 6.5 工作流程
- 7. G1 收集器
- 7.1 定义
- 7.2 特点
- 7.3 使用的垃圾收集算法
- 7.4 应用场景
- 7.5 工作流程
- 8. 总结
前言
垃圾收集器 是 垃圾收集算法 的具体实现

本文将对市面上常见的垃圾收集器类型进行讲解,希望你们会喜欢
垃圾收集器类型
垃圾收集器 是 垃圾收集算法 的具体实现
现在主流的垃圾收集器有 7 种:
我们会根据需求场景的不同,选择不同特点的垃圾收集器
下面我会详细介绍。
1. Serial收集器
1.1 定义
最基本、发展历史最长的垃圾收集器
1.2 优点
- 并发收集 在进行垃圾收集时,必须暂停其他所有工作线程(
Stop The World),直到收集结束。
暂停工作线程 是在用户不可见的情况下进行
注:并发 与 并行的区别 a. 并发:在 某一时段内,交替执行多个任务(即先处理A再处理B,循环该过程) b. 并行:在 某一时刻内,同时执行多个任务(即同时处理A、B)
- 单线程 只使用 一条线程 完成垃圾收集(
GC线程) - 效率高 对于限定单
CPU环境来说,Serial收集器没有线程交互开销(专一做垃圾收集),拥有更高的单线程收集效率。
垃圾收集高效,即其他工作线程停顿时间短(可控制在100ms内),只要垃圾收集发生的频率不高,完全可以接受。
1.3 使用的垃圾收集算法
复制 算法
1.4 应用场景
客户端模式下,虚拟机的 新生代区域
1.5 工作流程
2. Serial Old收集器
2.1 定义
Serial收集器 应用在老年代区域 的版本
2.2 优点
并发、单线程、效率高
同Serial收集器,此处不作过多描述
2.3 使用的垃圾收集算法
标记-整理 算法
2.4 应用场景
2.5 工作流程
3. ParNew 收集器
3.1 定义
Serial收集器 的 多线程 版本。
3.2 优点
- 并发收集 在进行垃圾收集时,必须暂停其他所有工作线程(
Stop The World),直到收集结束。
暂停工作线程 是在用户不可见的情况下进行
- 多线程收集 使用 多条垃圾收集线程(
GC线程) 完成垃圾收集
由于存在线程交互的开销,所以在单CPU环境下,性能差于 Serial收集器
- 与
CMS收集器配合工作 目前,只有ParNew 收集器能与 CMS收集器 配合工作
- 由于
CMS收集器使用广泛,所以该特点非常重要。 - 关于
CMS收集器 下面会详细说明
3.3 使用的垃圾收集算法
复制 算法
3.4 应用场景
服务器模式下,虚拟机的 新生代区域
多线程收集
3.5 工作流程
4. Parallel Scavenge收集器
4.1 定义
ParNew 收集器的升级版
4.2 特点
- 具备ParNew 收集器并发、多线程收集的特点
- 以达到 可控制吞吐量 为目标 其他收集器的目标是: 尽可能缩短 垃圾收集时间,而
Parallel Scavenge收集器的目标则是:达到 可控制吞吐量 - 吞吐量:
CPU用于运行用户代码的时间 与 CPU总消耗时间(运行用户代码时间+垃圾收集时间)的比值 - 如:虚拟机总共运行100分钟,其中垃圾收集时间=1分钟、运行用户代码时间 = 99分钟,那吞吐量 = 99 / 100 = 99%
- 自适应 该垃圾收集器能根据当前系统运行情况,动态调整自身参数,从而达到最大吞吐量的目标。
该特性称为:GC 自适应的调节策略
这是Parallel Scavenge收集器与 ParNew 收集器 最大的区别
4.3 使用的垃圾收集算法
复制 算法
4.4 应用场景
服务器模式下,虚拟机的 新生代区域
4.5 工作流程
5. Parallel Old收集器
5.1 定义
Parallel Scavenge收集器 应用在老年代区域 的版本
5.2 特点
以达到 可控制吞吐量 为目标、自适应调节、多线程收集
同Parallel Scavenge收集器
5.3 使用的垃圾收集算法
标记-整理 算法
5.4 应用场景
服务器模式下,虚拟机的 老年代区域
5.5 工作流程
6. CMS收集器
6.1 定义
即Concurrent Mark Sweep,基于 标记-清除算法的收集器
6.2 特点
6.2.1 优点
并行 用户线程 & 垃圾收集线程同时进行。
即在进行垃圾收集时,用户还能工作。
- 单线程收集 只使用 一条线程 完成垃圾收集(GC线程)
- 垃圾收集停顿时间短 该收集器的目标是: 获取最短回收停顿时间 ,即希望 系统停顿的时间 最短,提高响应速度
6.2.2 缺点
- 总吞吐量会降低 因为该收集器对
CPU资源非常敏感,在并发阶段,虽不会导致用户线程停顿,但会因为占用部分线程(CPU资源)而导致应用程序变慢,总吞吐量会降低 - 无法处理浮动垃圾 由于 并发清理时 用户线程还在运行,所以会有新的垃圾不断产生(即浮动垃圾),只能等到留待下一次GC时再清理掉。
因为这一部分垃圾出现在标记过程之后,所以CMS无法在当次GC中处理掉它们
因此,CMS无法等到老年代被填满再进行Full GC,CMS需要预留一部分空间。即所谓的:可能出现Concurrent Mode Failure失败而导致另一次Full GC产生。
垃圾收集后会产生大量内存空间碎片 因为 CMS收集器是基于“标记-清除”算法的。
6.3 使用的垃圾收集算法
标记-清除 算法
6.4 应用场景
重视应用的响应速度、希望系统停顿时间最短的场景
如互联网移动端应用
6.5 工作流程
CMS 收集器 是基于 标记-清除算法实现的收集器,工作流程较为复杂:(分为四个步骤)
初始标记
下面用一张图详细说明工作流程:
- 由于整个过程中,耗时最长的并发标记 和 并发清除过程都可与用户线程一起进行
- 所以,
CMS收集器的垃圾收集过程可看作是与用户线程 并发执行的。
7. G1 收集器
7.1 定义
最新、技术最前沿的垃圾收集器
7.2 特点
并行 用户线程 & 垃圾收集线程同时进行。
即在进行垃圾收集时,用户还能工作
多线程 即使用 多条垃圾收集线程(GC线程) 进行垃圾收集
并发 & 并行 充分利用多CPU、多核环境下的硬件优势 来缩短 垃圾收集的停顿时间
垃圾回收效率高 G1 收集器是 针对性 对 Java堆内存区域进行垃圾收集,而非每次都对整个 Java 堆内存区域进行垃圾收集。
即 G1收集器除了将 Java 堆内存区域分为新生代 & 老年代之外,还会细分为许多个大小相等的独立区域( Region),然后G1收集器会跟踪每个 Region里的垃圾价值大小,并在后台维护一个列表;每次回收时,会根据允许的垃圾收集时间 优先回收价值最大的Region,从而避免了对整个Java堆内存区域进行垃圾收集,从而提高效率。
因为上述机制,G1收集器还能建立可预测的停顿时间模型:即让 使用者 明确指定一个长度为M毫秒的时间片段内,消耗在垃圾收集上的时间不得从超出N毫秒。即具备实时性
分代收集 同时应用在 内存区域的新生代 & 老年代
不会产生内存空间碎片
从整体上看,G1 收集器是基于 标记-整理算法实现的收集器
从局部上看,是基于 复制算法 实现 上述两种算法意味着 G1 收集器不会产生内存空间碎片。
7.3 使用的垃圾收集算法
对于新生代:复制算法
对于老年代:标记 - 整理算法
7.4 应用场景
服务器端虚拟机的内存区域(包括 新生代 & 老年代)
7.5 工作流程
G1 收集器的工作流程分为4个步骤:
初始标记
下面用一张图详细说明工作流程
8. 总结
本文对垃圾收集器的类型进行全面讲解
以上就是JVM常见垃圾收集器学习指南的详细内容,更多关于JVM垃圾收集器的资料请关注其它相关文章!
相关推荐:
seo黑帽是什么,列举几种seo黑帽行为 ,穿老款的ai丢人吗
seo软件是什么职位,seo用的是什么软件 ,ai感知树
seo适合什么行业,seo适合的行业 ,在ai如何矢量化
AI助手Stut:智能时代的创新引擎,开启未来工作新篇章,ai对ai的格斗游戏
为什么选择B站VIP?让你畅享更丰富的视听体验,小门类网站seo
常用AI工具,高效智能生活
SEO薪资这些,你也能月入过万!,天水网站建设公司
什么是seo运营,什么是seo营销 ,ai绘画沙地
SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结
什么是SEO可以自学吗,seo零基础可以自学吗 ,ai1紫
用AI写科普文章:科技改变写作的未来
用AI修改文章,提升写作效率与质量的新时代
ChatGPT宕机恢复时间如何解决用户焦虑与技术背后的故事,ai人工智能写作火山
为什么要seo 运营,为什么需要seo ,ai人物头盔
Bing无法使用怎么办?解决方法及替代方案推荐!,ai文字设计教程
如何利用AI生成高质量文章,提升写作效率与创意?
SEO知道:让你的网站在搜索引擎中脱颖而出,水安建设集团网站
互联网时代的“搜索截流”新玩法:如何抓住流量红利,甘孜做优化网站软件
OpenAI新产品与现有技术的完美结合:赋能未来的智能变革,培训 ai
SEO包月服务:助力企业提升网站排名与流量的长期利器,网站建设流程 报读文库
ChatGPT:如果您正在使用VPN,这些技巧您一定要知道!,AI换脸*H
seo营销到底是什么,seo算什么营销 ,ai里面新建
Bing搜索不能预览了?搜索引擎的新变革与挑战,ai制作一张窗花
创作新时代:自动生成文章AI的魅力与未来
如何用AI改文章,让写作更高效、精准,提升内容质量
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
SEO有点:揭秘优化之道,提升网站排名的秘诀,广州抖音seo厂家地址
ChatGPT不能打开EL?揭秘这一困扰背后的真相与解决方案,ai被动房
优化高效率:提升个人与企业竞争力的关键,安康网站推广咨询
企业营销:如何在竞争激烈的市场中脱颖而出,美装网站Seo优化
SEO总结:如何通过优化提升网站排名与流量,关键词排名消失
SEO费用如何根据预算选择最合适的SEO服务,营销类推广网站
什么是“神马关键词”?如何用它提升你的网络营销效果?,新闻发布网站怎么做推广
360刷排名工具选哪家?揭秘2025年最强排名优化工具!,ai写作网站哪个好一点
AI生成网页模板,轻松打造专业网站,ai网格画法
一键创作,助你轻松实现创意梦想,最低价刷粉网站推广
ChatGPT页面空白不乏登录:让你秒变职场高手与生活智囊,百度ai 腾讯ai
SEO提供:如何通过精准的SEO策略提升网站流量与品牌影响力,刷关键词排名立的火星
ChatGPT的破解版:AI世界的新突破,ai无禁忌
AI撰写率:让创作变得更高效,助力内容产业腾飞,人力ai
SEO怎么做才能提升网站流量与排名?这篇文章给你全攻略,铁岭定制网站推广公司电话
AI网页效果生成:开启网站设计的新纪元,ai画线祥云
SEO添加:提升网站流量与排名的必备策略,seo团队成员中国人
优化网站的秘诀:提高网站速度与用户体验,助力业务腾飞,旅游网站建设步骤
AI人工智能文章生成器写作新纪元
ChatGPT连了外网也登不了?如何解决这一问题,重新畅享AI助力!,ai少女大瓜
SEO引擎优化方法-让你的网站流量暴增的实战指南,ai智慧树
ChatGPT当前不可用?背后的原因与解决方案全解析,ai propos
seo跟sem是什么,seo和sem的概念 ,惠威的ai功能
OpenAI网站崩溃原因:背后的技术与挑战,千牛Ai智投在哪里找