Java 12 发布:更新是道光,快到你发慌
Posted QCon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 12 发布:更新是道光,快到你发慌相关的知识,希望对你有一定的参考价值。
Java是道光,快到你发慌。8 还没用明白呢,Java 9 、10、11……就出来了。
3月19日,Java 12 如约而至。这也是Oracle正式变更 JDK 8/11 用户协议后的首个发布的版本。
虽然 Java 12 不是长期支持版本(LTS),但是对那些比较看重 Java 新特性的开发者来说,还是颇为期待此次更新的。
作为功能性版本,JDK 12 共包含以下 8 个新的 JEP:
189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) :新增一个名为 Shenandoah 的垃圾回收器,它通过在 Java 线程运行的同时进行疏散 (evacuation) 工作来减少停顿时间。
230: Microbenchmark Suite:新增一套微基准测试,使开发者能够基于现有的 Java Microbenchmark Harness(JMH)轻松测试 JDK 的性能,并创建新的基准测试。
325: Switch Expressions (Preview) :对 switch 语句进行扩展,使其可以用作语句或表达式,简化日常代码。
334: JVM Constants API :引入一个 API 来对关键类文件 (key class-file) 和运行时工件的名义描述(nominal descriptions)进行建模,特别是那些可从常量池加载的常量。
340: One AArch64 Port, Not Two :删除与 arm64 端口相关的所有源码,保留 32 位 ARM 移植和 64 位 aarch64 移植。
341: Default CDS Archives :默认生成类数据共享(CDS)存档。
344: Abortable Mixed Collections for G1 :当 G1 垃圾回收器的回收超过暂停目标,则能中止垃圾回收过程。
346: Promptly Return Unused Committed Memory from G1 :改进 G1 垃圾回收器,以便在空闲时自动将 Java 堆内存返回给操作系统。
我们注意到,JDK 12 中,新添加了一个名为 Shenandoah 的垃圾收集(GC)算法。它利用现代多核CPU的优势,通过与正在运行的 Java 工作线程同时进行(并发,你懂的),从而减少GC停顿时间。
常规的Shenandoah GC循环如下所示:
Shenandoah的停顿时间和堆的大小没有任何关系,这意味着,无论你的堆是200MB还是200GB,停顿时间是一样的。
早在2013年,Red Hat 就启动了 Shenandoah 项目的开发。后来,Shenandoah 后来被贡献给了 OpenJDK,正式成为 OpenJDK 的开源项目,也就是 JEP 189。
Shenandoah 适用于那些更看重响应性和可预测的短暂停顿的应用程序,其目标不是解决所有 JVM 的停顿问题。
现代服务器拥有比以往更多的内存和处理器,SLA应用需要保证响应时间在 10-500ms 以内。为了满足该目标的最低值,我们需要 GC 算法足够高效,允许应用在可用内存中运行,经过优化后,正在运行的应用程序的停顿时间永远不会超过5ms。
Shenandoah就是这样一个 OpenJDK 为更近这个目标而设计的开源、超低停顿时间的垃圾回收器。
作为实验性功能,Shenandoah 将 -XX:+UnlockExperimentalVMOptions 在命令行中要求。Shenandoah构建系统会自动禁用不受支持的配置。
下游建设者可以选择--with-jvm-features=-shenandoahgc在其他支持的平台上禁用构建Shenandoah 。
要启用/使用Shenandoah GC,需要以下JVM选项:
-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC。
详见:http://openjdk.java.net/jeps/189
想知道更多关于 Shenandoah 的实践案例?即将到来的QCon北京2019定于5月6-8日在北京国际会议中心召开。大会上,来自Red Hat的古政宇老师,将就“Shenandoah: Your Next Garbage Collector” 话题与你分享实践经验。
大会还设有“Java生态系统”专题,由永源中间件共同创始人,原红帽公司 JBoss 应用服务器核心开发组成员张建锋老师担任出品人。
邀请到了 IBM 的 MicroProfile 和 CDI 首席架构师 Emily Jiang(蒋丰慧)老师。她的演讲话题是“Jakarta EE 和 MicroProfile 的明天会怎样?”
阿里巴巴的中间件高级开发工程师季敏(清铭)老师,同时,他也是Fescar 开源项目负责人。在大会上,他将与我们一起分享“Fescar 在微服务一致性中的探索。”
本届大会由蚂蚁金服首席技术官程立(鲁肃)、腾讯玄武实验室总监于旸(TK)、百度首席架构师/技术委员会主席祁安龙、爱因互动创始人兼CTO洪强宁,英特尔高级首席工程师及大数据技术全球CTO戴金权担任联席主席。
来自Red Hat、IBM、Facebook、Microsoft、Uber、阿里巴巴、百度、腾讯、字节跳动等公司的近200位顶级开发团队负责人及资深一线开发人员、数千名技术人将云集现场,共同聚焦26+热门专题,从Java 生态系统、高可用架构、运维最佳实践等经典方向,到人工智能、机器学习、混沌工程等前沿领域,以实践案例为跟脚,进行思维碰撞,拓宽技术视野,相约获得启发。
以上是关于Java 12 发布:更新是道光,快到你发慌的主要内容,如果未能解决你的问题,请参考以下文章