ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

垃圾收集器

2021-10-20 16:33:12  阅读:108  来源: 互联网

标签:收集 标记 收集器 并发 算法 垃圾 CMS


垃圾收集算法

  1. 标记清除算法。
  2. 复制算法。
  3. 标记整理算法。
  4. 分代收集。年轻代复制算法,老年代标记清除或标记整理算法。

垃圾收集器

Serial收集器

最早的,最基本的。
单线程,收集过程会停顿。
适用于Client,单CPU场景,简单高效。
能与CMS收集器配合。
新生代。

ParNew收集器

Serial的多线程版本。
能与CMS收集器配合。
默认开启的收集线程数与CPU的数量相同,可配置。
新生代。

Parallel Scavenge收集器

新生代。
多线程。
目标是吞吐量。
可控制吞吐量。
可配置GC时间占比,可配置GC最大停顿时间。
经常称为“吞吐量优先收集器”
-XX:+UseAdaptiveSizePolicy,开启自适应调节策略。

Serial Old收集器

Serial老年代版本,单线程,标记-整理算法。
CMS的后备预案。

Parallel Old收集器

Parallel Scavenge老年代版本,多线程,标记-整理算法。

CMS收集器

目标是最短停顿时间。
老年代。
标记-清除算法。

步骤:

  • 初始标记;
  • 并发标记;
  • 重新标记;
  • 并发清除;

并发、低停顿收集器。

缺点:

  • 并发阶段,耗CPU资源,虽并发,但用户线程变慢;
  • 并发清理阶段的浮动垃圾无法清理;并发清理需预留空间,68,92,可能失败;
  • 标记清除,空间碎片。可配置每次压缩(默认),或N次后压缩。压缩需停顿;

G1收集器

最前沿成果之一。
面向服务器端应用。
目标是替代CMS。
可独立管理整个堆。
标记-整理算法,无碎片。
堆划分为多个大小相等的独立区域(Region)。
指定在一个长度为M毫秒的时间片段内,消耗在垃圾收集上的时间不得超过N毫秒。
每次根据允许的收集时间,优先回收价值最大的Region(这也就是Garbage-First名称的来由)。
有限的时间内获取尽可能高的收集效率。
被引用对象所属的Region的Remembered Set之中,存有,跨Region或跨代的引用。
步骤同CMS,但最后一步,为筛选回收。
尚未经过实际应用的考验,应谨慎使用。

垃圾收集器参数表

-- 结束 --

标签:收集,标记,收集器,并发,算法,垃圾,CMS
来源: https://www.cnblogs.com/shangyingbin/p/15429416.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有