• 首页
  • 粮食
  • 蔬菜
  • 果品
  • 水产
  • 酒水
  • 饮料
  • 茶叶
  • 畜禽
  • 食用油
  • 资讯
logo
  • 首页>
  • 蔬菜 >
  • 正文

世界焦点!HotSpot 垃圾收集器

2023-06-30 12:25:38 来源:哔哩哔哩

HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器。我们选择的只是对具体应用最合适的收集器。


(资料图片)

新生代垃圾收集器

Serial 垃圾收集器(单线程)

只开启一条GC 线程进行垃圾回收,并且在垃圾收集过程中停止一切用户线程,即 Stop The World。

一般客户端应用所需内存较小,不会创建太多对象,而且堆内存不大,因此垃圾收集器回收时间短,即使在这段时间停止一切用户线程,也不会感觉明显卡顿。因此 Serial 垃圾收集器适合客户端使用。

由于 Serial 收集器只使用一条 GC 线程,避免了线程切换的开销,从而简单高效。

ParNew 垃圾收集器(多线程)

ParNew 是 Serial 的多线程版本。由多条 GC 线程并行地进行垃圾清理。但清理过程依然需要 Stop The World。

ParNew 追求“低停顿时间”,与 Serial 唯一区别就是使用了多线程进行垃圾收集,在多 CPU 环境下性能比 Serial 会有一定程度的提升;但线程切换需要额外的开销,因此在单 CPU 环境中表现不如 Serial。

Parallel Scavenge 垃圾收集器(多线程)

Parallel Scavenge 和 ParNew 一样,都是多线程、新生代垃圾收集器。但是两者有巨大的不同点:

Parallel Scavenge:追求 CPU 吞吐量,能够在较短时间内完成指定任务,因此适合没有交互的后台计算。

ParNew:追求降低用户停顿时间,适合交互式应用。

吞吐量 = 运行用户代码时间 / (运行用户代码时间 + 垃圾收集时间)

追求高吞吐量,可以通过减少 GC 执行实际工作的时间,然而,仅仅偶尔运行 GC 意味着每当 GC 运行时将有许多工作要做,因为在此期间积累在堆中的对象数量很高。单个 GC 需要花更多的时间来完成,从而导致更高的暂停时间。而考虑到低暂停时间,最好频繁运行 GC 以便更快速完成,反过来又导致吞吐量下降。

通过参数 -XX:GCTimeRadio 设置垃圾回收时间占总 CPU 时间的百分比。

通过参数 -XX:MaxGCPauseMillis 设置垃圾处理过程最久停顿时间。

通过命令 -XX:+UseAdaptiveSizePolicy 开启自适应策略。我们只要设置好堆的大小和 MaxGCPauseMillis 或 GCTimeRadio,收集器会自动调整新生代的大小、Eden 和 Survivor 的比例、对象进入老年代的年龄,以最大程度上接近我们设置的 MaxGCPauseMillis 或 GCTimeRadio。

老年代垃圾收集器

Serial Old 垃圾收集器(单线程)

Serial Old 收集器是 Serial 的老年代版本,都是单线程收集器,只启用一条 GC 线程,都适合客户端应用。它们唯一的区别就是:Serial Old 工作在老年代,使用“标记-整理”算法;Serial 工作在新生代,使用“复制”算法。

Parallel Old 垃圾收集器(多线程)

Parallel Old 收集器是 Parallel Scavenge 的老年代版本,追求 CPU 吞吐量。

CMS 垃圾收集器

CMS(Concurrent Mark Sweep,并发标记清除)收集器是以获取最短回收停顿时间为目标的收集器(追求低停顿),它在垃圾收集时使得用户线程和 GC 线程并发执行,因此在垃圾收集过程中用户也不会感到明显的卡顿。

初始标记:Stop The World,仅使用一条初始标记线程对所有与 GC Roots 直接关联的对象进行标记。

并发标记:使用多条标记线程,与用户线程并发执行。此过程进行可达性分析,标记出所有废弃对象。速度很慢。

重新标记:Stop The World,使用多条标记线程并发执行,将刚才并发标记过程中新出现的废弃对象标记出来。

并发清除:只使用一条 GC 线程,与用户线程并发执行,清除刚才标记的对象。这个过程非常耗时。

并发标记与并发清除过程耗时最长,且可以与用户线程一起工作,因此,总体上说,CMS 收集器的内存回收过程是与用户线程一起并发执行的。

CMS 的缺点:

吞吐量低

无法处理浮动垃圾

使用“标记-清除”算法产生碎片空间,导致频繁 Full GC

对于产生碎片空间的问题,可以通过开启 -XX:+UseCMSCompactAtFullCollection,在每次 Full GC 完成后都会进行一次内存压缩整理,将零散在各处的对象整理到一块。设置参数 -XX:CMSFullGCsBeforeCompaction 告诉 CMS,经过了 N 次 Full GC 之后再进行一次内存整理。

G1 通用垃圾收集器

G1 是一款面向服务端应用的垃圾收集器,它没有新生代和老年代的概念,而是将堆划分为一块块独立的 Region。当要进行垃圾收集时,首先估计每个 Region 中垃圾的数量,每次都从垃圾回收价值最大的 Region 开始回收,因此可以获得最大的回收效率。

从整体上看, G1 是基于“标记-整理”算法实现的收集器,从局部(两个 Region 之间)上看是基于“复制”算法实现的,这意味着运行期间不会产生内存空间碎片。

这里抛个问题

一个对象和它内部所引用的对象可能不在同一个 Region 中,那么当垃圾回收时,是否需要扫描整个堆内存才能完整地进行一次可达性分析?

并不!每个 Region 都有一个 Remembered Set,用于记录本区域中所有对象引用的对象所在的区域,进行可达性分析时,只要在 GC Roots 中再加上 Remembered Set 即可防止对整个堆内存进行遍历。

如果不计算维护 Remembered Set 的操作,G1 收集器的工作过程分为以下几个步骤:

初始标记:Stop The World,仅使用一条初始标记线程对所有与 GC Roots 直接关联的对象进行标记。

并发标记:使用一条标记线程与用户线程并发执行。此过程进行可达性分析,速度很慢。

最终标记:Stop The World,使用多条标记线程并发执行。

筛选回收:回收废弃对象,此时也要 Stop The World,并使用多条筛选回收线程并发执行。

本文由mdnice多平台发布

本文使用 文章同步助手 同步

关键词:

    为您推荐

  • 世界焦点!HotSpot 垃圾收集器

    蔬菜2023-06-30
  • 全球微速讯:顺德区农村党员设岗定责提效工作现场会在杏坛镇古朗村召开

    蔬菜2023-06-30
  • 环球滚动:神探夏洛克4k(神探夏洛克4)

    蔬菜2023-06-30
  • 代糖概念股开盘表现抢眼 保龄宝一字涨停-全球即时

    蔬菜2023-06-30
  • 你好,我想问下,做棋牌游戏的公司因为涉嫌开设赌场被查,其中程

    蔬菜2023-06-30
  • 即时焦点:今日公布!哈尔滨男科疾病医院排行总榜「实时公开」哈尔滨治疗早泄的医院去哪家好

    蔬菜2023-06-30
  • 南京发布最新人事任免|天天时讯

    蔬菜2023-06-30
  • qq空间人气精灵在线刷_空间人气是什么 热门

    蔬菜2023-06-30
  • 确保行政处罚“过罚相当”!生态环境行政处罚办法明起实施

    蔬菜2023-06-30
  • 萨托兰斯基的不寻常让奇才队超越魔术队-天天要闻

    蔬菜2023-06-30
  • 北京暂停出让房山区长阳镇1宗地块_环球简讯

    蔬菜2023-06-30
  • 【天天速看料】2021年国庆节是建国多少周年的谚语怎么写_2021年国庆节是建国多少周年

    蔬菜2023-06-30
  • 钢壳都市雷吉欧斯(雷吉 威廉姆斯)

    蔬菜2023-06-30
  • 全球新动态:[浦东]华林小学:梦想启航,未来可期——2023届五年级毕业典礼

    蔬菜2023-06-29
  • 中国中免:通过公开摘牌方式向中国出国人员服务有限公司增资12.28亿元

    蔬菜2023-06-29
  • 新莱福:接受东北证券调研

    蔬菜2023-06-29
  • 2023年贵州省养老金调整方案何时公布和贵州省养老金上调最新方案公布了吗|环球视点

    蔬菜2023-06-29
  • 当前观察:满满都是回忆!陈百祥与村超互动时,在“神鸟凤凰图”上签名

    蔬菜2023-06-29
  • 【时快讯】掌趣科技:拟与悠米互娱合作开发“AI游戏创作平台”,股价4天涨近30%

    蔬菜2023-06-29
  • 世界关注:关于冬天的文艺句子

    蔬菜2023-06-29

果品

  • 北京2022年冬奥会、冬残奥会奖牌“同心”正式发布
  • 冬奥故事会丨一图了解冬奥会历届奖牌
  • 同心筑梦向未来——写在北京冬奥会开幕倒计时100天之际
  • 外交部:美国针对亚裔仇恨犯罪数字令人痛心

蔬菜

  • 世界焦点!HotSpot 垃圾收集器
  • 全球微速讯:顺德区农村党员设岗定责提效工作现场会在杏坛镇古朗村召开
  • 环球滚动:神探夏洛克4k(神探夏洛克4)
  • 代糖概念股开盘表现抢眼 保龄宝一字涨停-全球即时
  • 你好,我想问下,做棋牌游戏的公司因为涉嫌开设赌场被查,其中程
  • 即时焦点:今日公布!哈尔滨男科疾病医院排行总榜「实时公开」哈尔滨治疗早泄的医院去哪家好
  • 南京发布最新人事任免|天天时讯
  • qq空间人气精灵在线刷_空间人气是什么 热门
  • 确保行政处罚“过罚相当”!生态环境行政处罚办法明起实施
  • 萨托兰斯基的不寻常让奇才队超越魔术队-天天要闻

Copyright   2015-2022 东方食品网 版权所有  备案号:沪ICP备2020036824号-8   联系邮箱:562 66 29@qq.com