什么?面试官问我G1垃圾收集器?

UE4 专用服务器搭建(UE4.27为例) 专用服务器、DS服务器 阅读详情

面试官:要不这次来聊聊G1垃圾收集器?

候选者:嗯嗯,好的呀

候选者:上次我记得说过,CMS垃圾收集器的弊端:会产生内存碎片&&空间需要预留

候选者:这俩个问题在处理的时候,很有可能会导致停顿时间过长,说白了就是CMS的停顿时间是「不可预知的」

候选者:而G1又可以理解为在CMS垃圾收集器上进行”升级”

候选者:G1 垃圾收集器可以给你设定一个你希望Stop The Word 停顿时间,G1垃圾收集器会根据这个时间尽量满足你

候选者:在前面我在介绍JVM堆的时候,是画了一张图的。堆的内存分布是以「物理」空间进行隔离

候选者:在G1垃圾收集器的世界上,堆的划分不再是「物理」形式,而是以「逻辑」的形式进行划分

候选者:不过,像之前说过的「分代」概念在G1垃圾收集器的世界还是一样奏效的

候选者:比如说:新对象一般会分配到Eden区、经过默认15次的Minor GC新生代的对象如果还存活,会移交到老年代等等…

候选者:我来画下G1垃圾收集器世界的「堆」空间分布吧

候选者:从图上就可以发现,堆被划分了多个同等份的区域,在G1里每个区域叫做Region

候选者:老年代、新生代、Survivor这些应该就不用我多说了吧?规则是跟CMS一样的

候选者:G1中,还有一种叫 Humongous(大对象)区域,其实就是用来存储特别大的对象(大于Region内存的一半)

候选者:一旦发现没有引用指向大对象,就可直接在年轻代的Minor GC中被回收掉

面试官:嗯…

候选者:其实稍微想一下,也能理解为什么要将「堆空间」进行「细分」多个小的区域

候选者:像以前的垃圾收集器都是对堆进行「物理」划分

候选者:如果堆空间(内存)大的时候,每次进行「垃圾回收」都需要对一整块大的区域进行回收,那收集的时间是不好控制的

候选者:而划分多个小区域之后,那对这些「小区域」回收就容易控制它的「收集时间」了

面试官:嗯…

面试官:那我大概了解了。那要不你讲讲它的GC过程呗?

候选者:嗯,在G1收集器中,可以主要分为有Minor GC(Young GC)和Mixed GC,也有些特殊场景可能会发生Full GC

候选者:那我就直接说Minor GC先咯?

面试官:嗯,开始吧

候选者:G1的Minor GC其实触发时机跟前面提到过的垃圾收集器都是一样的

候选者:等到Eden区满了之后,会触发Minor GC。Minor GC同样也是会发生Stop The World的

候选者:要补充说明的是:在G1的世界里,新生代和老年代所占堆的空间是没那么固定的(会动态根据「最大停顿时间」进行调整)

候选者:这块要知道会给我们提供参数进行配置就好了

候选者:所以,动态地改变年轻代Region的个数可以「控制」Minor GC的开销

面试官:嗯,那Minor GC它的回收过程呢?可以稍微详细补充一下吗

候选者:Minor GC我认为可以简单分为为三个步骤:根扫描、更新&&处理 RSet、复制对象

候选者:第一步应该很好理解,因为这跟之前CMS是类似的,可以理解为初始标记的过程

候选者:第二步涉及到「Rset」的概念

面试官:嗯…

候选者:从上一次我们聊CMS回收过程的时候,同样讲到了Minor GC,它是通过「卡表」(cart table)来避免全表扫描老年代的对象

候选者:因为Minor GC 是回收年轻代的对象,但如果老年代有对象引用着年轻代,那这些被老年代引用的对象也不能回收掉

候选者:同样的,在G1也有这种问题(毕竟是Minor GC)。CMS是卡表,而G1解决「跨代引用」的问题的存储一般叫做RSet

候选者:只要记住,RSet这种存储在每个Region都会有,它记录着「其他Region引用了当前Region的对象关系」

候选者:对于年轻代的Region,它的RSet 只保存了来自老年代的引用(因为年轻代的没必要存储啊,自己都要做Minor GC了)

候选者:而对于老年代的 Region 来说,它的 RSet 也只会保存老年代对它的引用(在G1垃圾收集器,老年代回收之前,都会先对年轻代进行回收,所以没必要保存年轻代的引用)

面试官:嗯…

候选者:那第二步看完RSet的概念,应该也好理解了吧?

候选者:无非就是处理RSet的信息并且扫描,将老年代对象持有年轻代对象的相关引用都加入到GC Roots下,避免被回收掉

候选者:到了第三步也挺好理解的:把扫描之后存活的对象往「空的Survivor区」或者「老年代」存放,其他的Eden区进行清除

候选者:这里要提下的是,在G1还有另一个名词,叫做CSet。

候选者:它的全称是 Collection Set,保存了一次GC中「将执行垃圾回收」的Region。CSet中的所有存活对象都会被转移到别的可用Region上

候选者:在Minor GC 的最后,会处理下软引用、弱引用、JNI Weak等引用,结束收集

面试官:嗯,了解了,不难

面试官:我记得你前面提到了Mixed GC ,要不来聊下这个过程呗?

候选者:好,没问题的。

候选者:当堆空间的占用率达到一定阈值后会触发Mixed GC(默认45%,由参数决定)

候选者:Mixed GC 依赖「全局并发标记」统计后的Region数据

候选者:「全局并发标记」它的过程跟CMS非常类型,步骤大概是:初始标记(STW)、并发标记、最终标记(STW)以及清理(STW)

面试官:确实很像啊,你继续来聊聊具体的过程呗?

候选者:嗯嗯,还是想说明下:Mixed GC它一定会回收年轻代,并会采集部分老年代的Region进行回收的,所以它是一个“混合”GC。

候选者:首先是「初始标记」,这个过程是「共用」了Minor GC的 Stop The World(Mixed GC 一定会发生 Minor GC),复用了「扫描GC Roots」的操作。

候选者:在这个过程中,老年代和新生代都会扫

候选者:总的来说,「初始标记」这个过程还是比较快的,毕竟没有追溯遍历嘛

面试官:…

候选者:接下来就到了「并发标记」,这个阶段不会Stop The World

候选者:GC线程与用户线程一起执行,GC线程负责收集各个 Region 的存活对象信息

候选者:从GC Roots往下追溯,查找整个堆存活的对象,比较耗时

面试官:嗯…

候选者:接下来就到「重新标记」阶段,跟CMS又一样,标记那些在「并发标记」阶段发生变化的对象

候选者:是不是很简单?

面试官:且慢

面试官:CMS在「重新标记」阶段,应该会重新扫描所有的线程栈和整个年轻代作为root

面试官:据我了解,G1好像不是这样的,这块你了解吗?

候选者:嗯,G1 确实不是这样的,在G1中解决「并发标记」阶段导致引用变更的问题,使用的是SATB算法

候选者:可以简单理解为:在GC 开始的时候,它为存活的对象做了一次「快照」

候选者:在「并发阶段」时,把每一次发生引用关系变化时旧的引用值给记下来

候选者:然后在「重新标记」阶段只扫描着块「发生过变化」的引用,看有没有对象还是存活的,加入到「GC Roots」上

候选者:不过SATB算法有个小的问题,就是:如果在开始时,G1就认为它是活的,那就在此次GC中不会对它回收,即便可能在「并发阶段」上对象已经变为了垃圾。

候选者:所以,G1也有可能会存在「浮动垃圾」的问题

候选者:但是总的来说,对于G1而言,问题不大(毕竟它不是追求一次把所有的垃圾都清除掉,而是注重 Stop The World时间)

面试官:嗯…

候选者:最后一个阶段就是「清理」,这个阶段也是会Stop The World的,主要清点和重置标记状态

候选者:会根据「停顿预测模型」(其实就是设定的停顿时间),来决定本次GC回收多少Region

候选者:一般来说,Mixed GC会选定所有的年轻代Region,部分「回收价值高」的老年代Region(回收价值高其实就是垃圾多)进行采集

候选者:最后Mixed GC 进行清除还是通过「拷贝」的方式去干的

候选者:所以,一次回收未必是将所有的垃圾进行回收的,G1会依据停顿时间做出选择Region数量(:

面试官:嗯,过程我大致是了解了

面试官:那G1会什么时候发生full GC?

候选者:如果在Mixed GC中无法跟上用户线程分配内存的速度,导致老年代填满无法继续进行Mixed GC,就又会降级到serial old GC来收集整个GC heap

候选者:不过这个场景相较于CMS还是很少的,毕竟G1没有CMS内存碎片这种问题(:

本文总结(G1垃圾收集器特点):

  • 从原来的「物理」分代,变成现在的「逻辑」分代,将堆内存「逻辑」划分为多个Region
  • 使用CSet来存储可回收Region的集合
  • 使用RSet来处理跨代引用的问题(注意:RSet不保留 年轻代相关的引用关系)
  • G1可简单分为:Minor GC 和Mixed GC以及Full GC
  • 【Eden区满则触发】Minor GC 回收过程可简单分为:(STW) 扫描 GC Roots、更新&&处理Rset、复制清除
  • 【整堆空间占一定比例则触发】Mixed GC 依赖「全局并发标记」,得到CSet(可回收Region),就进行「复制清除」
  • R大描述G1原理的时候,从宏观的角度看G1其实就是「全局并发标记」和「拷贝存活对象」
  • 使用SATB算法来处理「并发标记」阶段对象引用可能会修改的问题
  • 提供可停顿时间参数供用户设置(G1会尽量满足该停顿时间来调整 GC时回收Region的数量)

【对线面试官-移动端】系列 一周两篇持续更新中!

【对线面试官-电脑端】系列 一周两篇持续更新中!

原创不易!!求三连!!

STM32F103/F407/H743不同GPIO速度配置(HAL库)对应的最高速度 详细介绍了STM32F103/F407/H743不同GPIO速度配置(HAL库)对应的最高速度。 阅读详情

相关推荐

直流有刷电机控制 - 驱动电路(二)

1.如图所示为最常见的推挽驱动电路,我附加了具有正反转功能的电机驱动控制,正反转是由两个继电器组成。使用推挽电路来驱动NMOS管时充电电流和放电电流都很大,因此NMOS管导通快,关断也快,而且NMOS温度不会很高。下面来介绍一下该电路的原理。(1)PWM_MCU是由单片机给出的PWM波信号,该信号是由一些列高低电平的方波构成。当信号为高电平的时候Q3导通,经过R47再到Q5的g极,此时mos导通,如果是K1闭合是正转那么K2闭合就是反转。(2)当PWM低电平时使得Q3关断,Q6导通。

u011030644的博客 4719

【面试】你了解哪些收集器?CMS和G1。详细谈谈G1的优点?什么时候进行Full GC呢?

收集器面向局部收集的设计思路和基于Region的内存布局形式。是一款面向服务端应用的垃圾收集器。在延迟可控的情况下获得尽可能高的吞吐量,所以才会担当起“全功能收集器”的重任与期望。

Treasure_shen的博客 904

IGV新手必看:5分钟搞定ChIP-seq/DAP-seq/ATAC-seq数据可视化(附常见报错解决方案)

本文为IGV新手提供了一份快速上手的实战指南,详细讲解了如何高效完成ChIP-seq、DAP-seq、ATAC-seq等数据的可视化。内容涵盖软件安装、基因组导入、文件格式转换与优化,并重点剖析了“导入后一片空白”等常见报错的根本原因与解决方案,帮助用户在5分钟内避开雷区,生成可用于发表的IGV专业图谱。

weixin_29198045的博客 538

G1垃圾收集器的优点和缺点

一 G1垃圾收集器的优点 与其他 GC 收集器相比,G1 使用了全新的分区算法,其特点如下所示: 1 并行与并发 并行性:G1 在回收期间,可以有多个 GC 线程同时工作,有效利用多核计算能力。此时用户线程 STW。 并发性:G1 拥有与应用程序交替执行的能力,部分工作可以和应用程序同时执行,因此,一般来说,不会在整个回收阶段发生完全阻塞应用程序的情况。 2 分代收集 从分代上看,G1 依然属于分代型垃圾回收器,它会区分年轻代和老年代,年轻代依然有 Eden 区和 Survivor 区。但从

实践求真知 7386

保姆级教程:在mmdetection中手动计算并可视化P、R、F1值(附完整代码)

本文提供了一份详细的mmdetection教程,指导开发者如何手动计算并可视化精确率(P)、召回率(R)和F1值。通过完整的代码示例和清晰的步骤说明,帮助用户深入理解目标检测模型的性能评估方法,特别适合需要精细分析模型表现的计算机视觉研究人员和工程师。

weixin_29038303的博客 399

单相PWM整流器四象限运行原理

简述单相PWM整流器四象限运行原理。

m0_75208156的博客 8297

JVM垃圾回收器常见面试题,需与项目结合回答汇总

本文罗列了常见的垃圾回收器问题,查漏补缺咯。

weixin_42080277的博客 1079

嵌入式系统(一):鸿蒙系统

本文为期末复习笔记,内容仅供参考???? 鸿蒙系统是一款面向万物互联时代的、全新的分布式操作系统 鸿蒙提出了基于同一套系统能力、适配多种终端形态的分布式理念 提供全场景(移动办公、运动健康、社交通信、指挥出行、媒体娱乐等)业务能力 华为是OpenHarmony开源项目的共建者、也是共享者之一 鸿蒙技术特性 分布式设计 一次开发,多端部署 系统与硬件解耦,弹性部署 三大分布式能力 分布式软总线 设备间互联互通提供分布式通信能力 从手动发现,进化成自发现 传输高带宽关键技术-极简协议 分布式数据管

weixin_45608532的博客 4306

G1垃圾收集器优缺点

G1 优点: 停顿时间短; 用户可以指定最大停顿时间; 不会产生内存碎片:G1 的内存布局并不是固定大小以及固定数量的分代区域划分,而是把连续的Java堆划分为多个大小相等的独立区域 (Region),G1 从整体来看是基于“标记-整理”算法实现的收集器,但从局部 (两个Region 之间)上看又是基于“标记-复制”算法实现,不会像 CMS (“标记-清除”算法) 那样产生内存碎片。 G1 缺点: G1 需要记忆集 (具体来说是卡表)来记录新生代和老年代之间的引用关系,这种数据结构在 G1 中需要占用大量的

weixin_42002747的博客 2617

把 ABAP ALV 做成可点、可改、可保存:Interactive Editable ALV Grid 的一套落地打法

文章摘要(148字): SAP ALV报表开发中,交互式可编辑网格的实用方案需解决三个核心问题:数据展示、交互下钻与编辑保存。本文以SCARR航空公司和SFLIGHT航班数据为例,演示如何实现双击主列表下钻明细、动态切换编辑模式、精确保存修改的技术路线。关键点包括:通过PF-STATUS添加业务按钮、使用CHECK_CHANGED_DATA同步前端修改、保护关键字段避免误操作,以及变更数据的审计跟踪方法。该方案适用于SAP GUI环境下的快速业务调整需求,相比Fiori开发具有更高的实施效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 228

环境配置与基础教程:2026大厂标准:使用 DVC (Data Version Control) 实现 YOLO 数据集版本控制全链路管理

本文介绍了使用DVC 3.0对YOLO数据集进行全链路版本控制的方法。主要内容包括: DVC 3.0的核心增强:内容块级缓存去重、并行云传输、AI智能体元数据跟踪等新特性,可显著提升YOLO数据集管理效率。 环境配置:详细说明DVC 3.0的安装步骤、项目初始化方法以及远程存储配置方案(支持S3、GCS、Azure等多种存储后端)。 目录结构规范:提供符合大厂MLOps标准的项目目录结构设计。 实战操作: 原始数据版本化 多格式标注数据版本控制 版本切换方法 优势说明:DVC通过哈希指针机制管理大型数据集,

ZXSXJ的博客 148

深入解析Java的G1收集器:原理、实战与优缺点

在Java虚拟机的发展历程中,垃圾收集器的演进始终围绕着两个核心目标:更高的吞吐量和更短的停顿时间。早期的Serial、Parallel等收集器虽然实现了基本功能,但面对日益增长的内存规模和更严格的服务响应要求时显得力不从心。2004年,Sun公司启动了G1(Garbage-First)项目,试图通过革命性的内存管理方式解决传统收集器的局限性。G1收集器的设计初衷是为了替代当时主流的CMS(Concurrent Mark-Sweep)收集器。

zuiyuelong的博客 1344

手把手教你学Simulink--控制策略与算法的DC-DC变换器领域仿真领域建模实例:基于Simulink实现一个双闭环控制Buck变换器的仿真建模

目录主要步骤1. 前期准备2. 构建Buck变换器模型3. 定义双闭环控制器4. 设置参考电压和反馈回路5. 实现双闭环控制器逻辑6. 仿真参数设置7. 运行仿真与结果分析示例整合代码片段1. Simulink模型2. 双闭环控制器参数调节3. 仿真结果分析总结双闭环控制是一种常见的控制策略,广泛应用于电力电子系统(如DC-DC变换器)中。它通过内外两个环路的协同工作,分别控制系统的动态性能和稳态性能。对于Buck变换器,通常采用电流内环和电压外环的双闭环控制结构。以下是一个手把手教程,帮助你基于Simul

MHD0815的博客 323

慌了,面试官问我G1垃圾收集器

面试官:要不这次来聊聊G1垃圾收集器?候选者:嗯嗯,好的呀候选者:上次我记得说过,CMS垃圾收集器的弊端:会产生内存碎片&&空间需要预留候选者:这俩个问题在处理的时候,很有可能会导致停顿时间过长,说白了就是CMS的停顿时间是「不可预知的」候选者:而G1又可以理解为在CMS垃圾收集器上进行"升级"候选者:G1 垃圾收集器可以给你设定一个你希望Stop The Word 停顿时间,G1垃圾收集器会根据这个时间尽量满足你候选者:在前面我在介绍JVM堆的时候,是画了一张图的。堆的内存分布是以「物理」

chenxuyuana的博客 308

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

这个面试官居然问我G1垃圾收集器

面试官:要不这次来聊聊G1垃圾收集器?候选者:嗯嗯,好的呀候选者:上次我记得说过,CMS垃圾收集器的弊端:会产生内存碎片&&空间需要预留候选者:这俩个问题在处理的时候,很有可能会导致停顿时间过长,说白了就是CMS的停顿时间是「不可预知的」候选者:而G1又可以理解为在CMS垃圾收集器上进行"升级"候选者:G1 垃圾收集器可以给你设定一个你希望Stop The Word 停顿时间,G1垃圾收集器会根据这个时间尽量满足你候选者:在前面我在介绍JVM堆的时候,是画了一张图的。堆的内存分布是以「物理」

jjc4261的博客 158

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

难顶 面试官问我G1垃圾收集器

候选者:首先是「初始标记」,这个过程是「共用」了Minor GC的 Stop The World(Mixed GC 一定会发生 Minor GC),复用了「扫描GC Roots」的操作。候选者:而对于老年代的 Region 来说,它的 RSet 也只会保存老年代对它的引用(在G1垃圾收集器,老年代回收之前,都会先对年轻代进行回收,所以没必要保存年轻代的引用)候选者:嗯嗯,还是想说明下:Mixed GC它一定会回收年轻代,并会采集部分老年代的Region进行回收的,所以它是一个“混合”GC。

m0_72134256的博客 150

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

难顶,面试官问我G1垃圾收集器

面试官:要不这次来聊聊G1垃圾收集器?候选者:嗯嗯,好的呀候选者:上次我记得说过,CMS垃圾收集器的弊端:会产生内存碎片&&空间需要预留候选者:这俩个问题在处理的时候,很有可能会导致停顿时间过长,说白了就是CMS的停顿时间是「不可预知的」候选者:而G1又可以理解为在CMS垃圾收集器上进行"升级"候选者:G1 垃圾收集器可以给你设定一个你希望Stop The Word 停顿时间,G1垃圾收集器会根据这个时间尽量满足你候选者:在前面我在介绍JVM堆的时候,是画了一张图的。堆的内存分布是以「物理」

知识分享官 158

面试官问我G1垃圾收集器,头都大了

面试官:要不这次来聊聊G1垃圾收集器?候选者:嗯嗯,好的呀候选者:上次我记得说过,CMS垃圾收集器的弊端:会产生内存碎片&&空间需要预留候选者:这俩个问题在处理的时候,很有可能会导致停顿时间过长,说白了就是CMS的停顿时间是「不可预知的」候选者:而G1又可以理解为在CMS垃圾收集器上进行"升级"候选者:G1 垃圾收集器可以给你设定一个你希望Stop The Word 停顿时间,G1垃圾收集器会根据这个时间尽量满足你候选者:在前面我在介绍JVM堆的时候,是画了一张图的。堆的内存分布是以「物理」

资料免费分享,点击名片 338

难顶·····面试官问我G1垃圾收集器

面试官:要不这次来聊聊G1垃圾收集器? 候选者:嗯嗯,好的呀 候选者:上次我记得说过,CMS垃圾收集器的弊端:会产生内存碎片&&空间需要预留 候选者:这俩个问题在处理的时候,很有可能会导致停顿时间过长,说白了就是CMS的停顿时间是「不可预知的」 候选者:而G1又可以理解为在CMS垃圾收集器上进行"升级" 候选者:G1 垃圾收集器可以给你设定一个你希望Stop The Word 停顿时间,G1垃圾收集器会根据这个时间尽量满足你 候选者:在前面我在介绍JVM堆的时候,是画了一张图的。堆的内存分布

V539413949的博客 172

面试官问我“垃圾收集器 G1 和 ZGC”,我说它俩是特种兵与隐身忍者,他瞬间闭嘴了

特性G1ZGC引入版本JDK 7u4(正式在 JDK9)JDK 11停顿时间可控,几十到几百 ms超低(<10ms)回收粒度Region 区域化多阶段并发,染色指针目标场景中等延迟,响应敏感场景延迟极低的大内存服务场景算法分代+Region+标记整理并发标记整理,非分代G1 是中年稳重大叔,城市保洁队长;ZGC 是沉默寡言特工,一击即中不留痕迹。想掌握 JVM 真本事,GC 就是你的入门武功心法!

真正的大师永远怀着一颗学徒的心 838

面试官,不要再问我“Java 垃圾收集器”了

如果Java虚拟机中标记清除算法、标记整理算法、复制算法、分代算法这些属于GC收集算法中的方法论,那么“GC收集器”则是这些方法论的具体实现。 在面试过程中这个深度的问题涉及的比较少,但对于理解上面的这些算法有很好的帮助。如果能够如数家珍,也是面试中的加分项,还是那句话,毕竟面试官的时间也不多了。 概念准备 在学习Java GC收集器之前,需要先了解一些内容和概念,首先如果没有学习《面试官,不要再...

程序新视界 4380

面试官:聊聊 G1,你清楚 G1 的特性吗?

天生适合于大内存机器! 为什么这么说,就是因为 G1 是可以控制 GC 停顿时间的,那么比如说对于 Kafka 类似的高并发消息中间件,一般来说都需要大内存机器部署,比如 64G,那么可以给年轻代 30G 内存来存放对象

qq_45260619的博客 2550

面试官:怎么做JDK8的垃圾收集器的调优?

如此浅显的回答,无法让面试官达到深入的要求,肯定不能满足面试官强烈的需求,果不其然面试官又追问到:

万猫学社 1万+

面试官:要不这次来聊聊G1垃圾收集器?

面试官:要不这次来聊聊G1垃圾收集器? 候选者:嗯嗯,好的呀 候选者:上次我记得说过,CMS垃圾收集器的弊端:会产生内存碎片&&空间需要预留 候选者:这俩个问题在处理的时候,很有可能会导致停顿时间过长,说白了就是CMS的停顿时间是「不可预知的」 候选者:而G1又可以理解为在CMS垃圾收集器上进行”升级” 候选者:G1 垃圾收集器可以给你设定一个你希望Stop The Word 停顿时间,G1垃圾收集器会根据这个时间尽量满足你 候选者:在前面我在介绍JVM堆的时候,是画了一张图的。

分享Java技术知识,共同成长进步! 138

详解cms和g1垃圾收集器

G1 垃圾收集器架构和如何做到可预测的停顿(阿里) CMS垃圾回收机制 参考:图解 CMS 垃圾回收机制原理,-阿里面试题 CMS与G1的区别 参考:CMS收集器和G1收集器优缺点 写这篇文章是基于阿里面试官的一个问题:众所周期,G1跟其他的垃圾回收算法差别很大,你了解G1的垃圾回收架构吗?为什么G1可以做到回收时间用户可以设定? G1垃圾回收器其实是JDK7的特性,在目前JDK10都已经...

风起尘落的博客 1681

面试官:谈谈你对G1垃圾收集器有哪些了解?

作为一款高效的垃圾收集器,G1在JDK7中加入JVM,在JDK9中取代CMS成为了默认的垃圾收集器。新生代采用复制算法,主要的垃圾收集器有三个,Serial、Parallel New 和 Parallel Scavenge,特性如下:G1垃圾收集器主要用于多处理器、大内存的场景,它有五个属性:分代、增量、并行(大多时候可以并发)、stop the word、标记整理。我们知道,垃圾收集器的一个目标就是STW(stop the word)越短越好。利用可预测停顿时间模型,G1为垃圾收集设定一个STW的目标时间

aa119101的博客 600
上一篇: 阿里面试官:CMS垃圾回收机制都不懂?回去吧
下一篇: 在后端中如何实现幂等和去重?
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值