问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于G1 GC 的一些研究

发布网友 发布时间:2024-09-28 11:51

我来回答

1个回答

热心网友 时间:2024-10-20 08:33

Garbage First (G1)回收器技术,于04年论文提出,6 Update 14测试版发布,12年JDK7正式发布,后替代Parallel Scavenge和Parallel Old组合,成为JDK9的默认Server端垃圾回收器。G1面向Region,不固定分代区域大小,将堆划分为多个大小相等的Region,每个可充当Eden、Survivor或老年代。大对象存储在专门的Humongous Region,超过Region容量一半,部分作为老年代。Region大小可通过参数-XX:G1HeapRegionSize设定,范围1mb-32mb,需为2的N次幂。

G1执行流程包括初始标记、并发标记、最终标记和清除。初始标记仅扫描GC Roots,标记直接关联对象,修改Region TAMS指针,不依赖mark word中的mark bit,使用外部bitmap。并发标记从GC Roots扫描堆对象图,不断从扫描栈取出引用进行标记,处理SATB write barrier记录的引用和更新Rset。最终标记处理并发阶段遗留的SATB记录。清除阶段使用CSet作为回收集合,根据统计模型选定收益最高、开销不超过用户指定期望停顿时间的若干个Region进行清理。

SATB(Snapshot At The Beginning)解决并发标记中的对象消失问题,G1通过前置写屏障实现,记录引用变化的旧值,确保所有引用变化记录在案。TAMS(Top at Mark Start)指针规定新对象分配位置,所有对象默认标记为存活状态,即便在并发标记结束前死亡。logging write-barrier异步执行write-barrier,提高mutator性能,减少垃圾收集延迟。

Remembered Set(RSet)用于记录从非收集区域指向收集区域的引用,G1在传统的卡表基础上添加一层结构,构成points-into关系,记录其他region指向自己的指针和范围。RSet是一种哈希表,用于减少全局扫描,提高效率。

G1回收集CSet(Collection Set)用于控制每次垃圾收集的成本和停顿时间,基于“衰减平均值”理论分析每个Region的成本和回收价值,生成Cset,采用并行复制算法清理Cset内的活对象。根据应用实际情况,选择合适的期望停顿时间,以达到平衡性能和用户体验。

G1支持两种模式:Young GC和Mixed GC,根据内存使用情况自动切换,以避免Concurrent Mode Failure(并发模式失败)导致的全堆收集。在Mixed GC无法跟上应用分配速度,或old gen充满无法继续执行Mixed GC时,G1会切换至Serial Old GC进行全堆收集,产生长时间暂停。

使用G1时,应合理设置期望停顿时间,避免过快导致并发模式失败,或过慢导致每次停顿时间过长。G1回收器的特性使其成为高并发应用的理想选择,通过优化堆内存管理和垃圾收集过程,提供更好的性能和用户体验。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
父母离异的话,会不会导致孩子心智不成熟? 过节 公司给我们发的购物卡 这个怎么做分录 属于福利费吗 需要计提吗... 乡村振兴公务员和省考公务员有什么区别 ...小时候跟着爷爷学国画书法,小受家是农村的,小受姓夏或叶,他带着他... 瑞麒X1安全装置 瑞麒X1的舒适型和豪华型有什么区别?配置有哪些不同的地方?这5000块多在... 瑞麒X1的安全性能方面配置如何? 脚崴了 有大量於血 怎么样才能快速消肿 脚崴了外侧出现瘀血浮肿怎么消除? ...换了我喜欢的发型,但是穿了件有点透明的衣服,可以看到肩_百度... Java 实战篇-JDK9新特性 成都鼎噗文化传媒公司带货靠谱吗 鳕鱼炖豆腐的做法有哪些? 如何在家烹饪巨下饭的鳕鱼炖豆腐? 痛风吃什么药,到底要怎么治疗才会好点 陌陌如何恢复已删除的好友聊天记录 微信更新后聊天记录没有了要怎么... 痛风应该如何预防 ...适当的计算单位.课桌高约80___,一个墨水瓶的容积约是50___百度... 我国的国土面积大约是960万___,课桌面的面积约是50__ ...课桌,桌面的长大约是50___填上适合的单位). 在各种中文输入法之间切换的快捷键 输入法快捷键都有哪些? ...要0求每个90字以下!如果有100~170字的,就一个好了!谢谢啊!44859... 婚姻登记全国联网了吗婚姻状态全国联网查询 各位大神 织梦网站支付怎么从支付宝变成xorpay(已经购买了xorpay插件... u深度u盘格式-(U深度U盘格式化) 海尔冰箱压缩机保修几年 海尔冰箱压缩机保几年? 谁能告诉我那种堕胎药没副作用? 海尔冰箱保修期多少年? 会计计量属性如何区分 Java 的七种垃圾收集器 | Linux 中国 资产的计量属性是什么 买丰田油电混动的十大忠告 cpu散装和盒装的区别 为什么书法考绩用熟宣 甲低是什么病严不严重 甲减是怎样造成的 甲状腺功能低下是怎么回事 自己想配一套400左右的键盘和耳麦主要玩CF 四十万经济纠纷诉讼费是多少 经济案件立案收费标准是多少? 经济纠纷诉讼费怎么收 求歌词最后一段是 如果一切能重来。我决不会让它。有这样的结果。求歌... 变频空调什么牌子更省电?变频空调排行榜前十名 红军长征的详细过程 左耳堵住一样怎么办 变频空调买什么牌子好 变频空调哪个牌子好 左耳像堵住了...最近没感冒..手电照里面也没有东西 左耳有点堵住的感觉怎么治疗