Dojo
最新
最佳
搜索
订阅
解道Jdon
领域驱动设计
架构设计
热点话题
GitHub开源免费源代码
认知偏差与谬论
RUST语言
数据科学
产品经理
go语言文章排行榜
docker教程文章排行榜
规则引擎
幽默模因
更多话题
JDK 18三个垃圾回收G1/Parallel/Serial GC的改进提升点
22-03-17
banq
整个 Hotspot GC 子组件的完整更改列表在
这里
,总共有 300 个更改。
通用改进
所有 OpenJDK 垃圾收集器Parallel GC、Serial GC和ZGC 现在都支持字符串重复数据删除:-XX:+UseStringDeduplication使用该选项启用。
-XX:GCCardSizeInBytes:更改此值会对暂停时间长度产生重大影响。用来配置 card table card size,详细
这里
。
下面是三者各自的改进点:
G1 GC
记忆集重写大量减少了 G1 本机内存消耗,无需任何成本。它显着减少了记忆集的本机内存占用。
取消了以前由某些内部数据结构强加的 32MB 区域大小限制。目前最大堆区域大小已设置为 512MB,但可能更大。
在某些情况下,当 Java 应用程序即将退出时,G1 等待活动并发标记的完成以实际退出。这可能会导致很长的延迟,具体取决于该任务的复杂性。JDK 18 修复了这个问题,“立即”退出 VM。
修复了JDK 14中引入的一个有趣的性能回归:在寻找对要收集的区域的引用时,疏散工作最初没有很好地分布。在较大的机器上,这暴露了工作窃取机制中的问题,导致停顿时间过长。
更新了垃圾收集调优指南以反映 JDK 18 的 G1 的当前状态,改进了各个部分。
Serial GC:
串行 GC增加了对归档堆对象的支持。这可以显着减少启动时间。
猜你喜欢
本站原创
《复杂软件设计之道:领域驱动设计全面解析与实战》
其他人在看