首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
shenandoah专题
从原理聊JVM(三):详解现代垃圾回收器Shenandoah和ZGC
一、Shenandoah Shenandoah一词来自于印第安语,十九世纪四十年代有一首著名的航海歌曲在水手中广为流传,讲述一位年轻富商爱上印第安酋长Shenandoah的女儿的故事。后来美国有一条位于Virginia州西部的小河以此命名,所以Shenandoah的中文译名为“情人渡”。 Shenandoah首次出现在Open JDK12中,是由Red Hat开发,主要为了解决之前各种垃圾
阅读更多...
OpenJDK 17 中的 Shenandoah:亚毫秒级 GC 停顿「译」
一、前言 Shenandoah OpenJDK 垃圾收集(GC) 项目的主要动机是减少垃圾收集暂停时间。在 JDK 12 中,发布了原始的 Shenandoah 垃圾收集器,它实现了并发堆疏散,解决了在不停止应用程序的情况下清理(可能很大)堆的主要问题。这个版本最终被移植到 JDK 11。在 JDK 14 中,实现了并发类卸载,在 JDK 16 中,添加了并发引用处理,这两者都进
阅读更多...
Shenandoah GC---低延迟垃圾收集器
相关概念 历史: Shenandoah GC是由 RedHat公司开发的的新型收集器,14年RedHat把Shenandoah贡献给了OpenJDK。设计目标:实现一种能在任何堆内存大小下都可以把垃圾收集的停顿时间限制在十毫秒以内的垃圾收集器。 与G1 GC的比较 相同点 同样基于Region的堆内存布局,同样有着用于存放大对象Humongous Region默认的回收策略也同样
阅读更多...
Java JVM OpenJDK12 Shenandoah 收集器
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。 Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 前言 最初 Shenandoah 是由 RedHat 公司独立发展的新型收集器项目,在 2014 年 RedHat 把 Shenandoah 贡献给了 OpenJDK
阅读更多...
Shenandoah收集器和ZGC收集器
Shenandoah收集器 与G1相比它的特点如下: 支持并发的整理算法。不会有专门的新生代Region或者老年代Region的存在,没有实现分代,并不是说分代对Shenandoah没有价值,这更多是出于性价比的权衡,基于工作量上的考虑而将其放到优先级较低的位置上。在G1中耗费大量内存和计算资源去维护的记忆集,改用名为“连接矩阵”。(连接矩阵可以简单理解为一张二维表格,如果Region N有
阅读更多...
Shenandoah 和 ZGC 收集器总结
阅读前提:了解G1 等收集器。 Shenandoah 前言: Shenandoah 并不是Oracle 官方的收集器,所以 OracleJDK 甚至明确拒绝使用这个高效的垃圾收集器,商用的话可以使用OpenJDK。 该收集器与 G1 的不同有: G1的回收阶段是可以多线程并行的,但是不能与用户线程并行,但是Shenandoah 回收阶段是可以与用户线程并发的,使用了转发指针等技术。 S
阅读更多...
Shenandoah收集器的实现细节
Shenandoah收集器的实现细节
阅读更多...