8. 根证书颁发认证
这将使OpenJDK对开发人员更具吸引力,它还旨在减少OpenJDK和Oracle JDK构建之间的差异 。
9. 将JDK生态整合单个存储库(JEP 296)
此JEP的主要目标是执行一些内存管理,并将JDK生态的众多存储库组合到一个存储库中 。
10. 删除工具javah(JEP 313)
从JDK中移除了javah工具,这个很简单并且很重要 。
Java 10尝鲜
就像所有其他JDK版本一样,Oracle已经发布了一个Java 10初始候选版本,Java开发者可以下载此版本用来测试新功能 。如果你对Java 10抱有期待想提早尝试,那么现在就开始吧!
11.Optional类
Optional类添加了新的方法orElseThrow(无参数版) 。相比于已经存在的get方法,这个方法更推荐使用 。
Java 11 新特性
- 支持Unicode 10.0,在jdk10中是8.0 。
- 标准化HTTP Client
- 编译器线程的延迟分配 。添加了新的命令-XX:+UseDynamicNumberOfCompilerThreads动态控制编译器线程的数量 。
- 新的垃圾收集器—ZGC 。一种可伸缩的低延迟垃圾收集器(实验性) 。
- Epsilon 。一款新的实验性无操作垃圾收集器 。Epsilon GC 只负责内存分配,不实现任何内存回收机制 。这对于性能测试非常有用,可用于与其他GC对比成本和收益 。
- Lambda参数的局部变量语法 。java10中引入的var字段得到了增强,现在可以用在lambda表达式的声明中 。如果lambda表达式的其中一个形式参数使用了var,那所有的参数都必须使用var 。
Java 12 中引入一个新的垃圾收集器:Shenandoah,它是作为一中低停顿时间的垃圾收集器而引入到 Java 12 中的,其工作原理是通过与 Java 应用程序中的执行线程同时运行,用以执行其垃圾收集、内存回收任务,通过这种运行方式,给虚拟机带来短暂的停顿时间 。
Shenandoah 垃圾回收器是 Red Hat 在 2014 年宣布进行的一项垃圾收集器研究项目,旨在针对 JVM 上的内存收回实现低停顿的需求 。该设计将与应用程序线程并发,通过交换 CPU 并发周期和空间以改善停顿时间,使得垃圾回收器执行线程能够在 Java 线程运行时进行堆压缩,并且标记和整理能够同时进行,因此避免了在大多数 JVM 垃圾收集器中所遇到的问题 。
据 Red Hat 研发 Shenandoah 团队对外宣称,Shenandoah 垃圾回收器的暂停时间与堆大小无关,这意味着无论将堆设置为 200 MB 还是 200 GB,都将拥有一致的系统暂停时间,不过实际使用性能将取决于实际工作堆的大小和工作负载 。
图 1. Shenandoah GC 工作周期如下所示
文章插图
Shenandoah GC
上图对应工作周期如下:
- Init Mark 启动并发标记 阶段
- 并发标记遍历堆阶段
- 并发标记完成阶段
- 并发整理回收无活动区域阶段
- 并发 Evacuation 整理内存区域阶段
- Init Update Refs 更新引用初始化 阶段
- 并发更新引用阶段
- Final Update Refs 完成引用更新阶段
- 并发回收无引用区域阶段
文章插图
图 2. 各种 GC 工作负载对比
下面推荐几个配置或调试 Shenandoah 的 JVM 参数:
- -XX:+AlwaysPreTouch:使用所有可用的内存分页,减少系统运行停顿,为避免运行时性能损失 。
- -Xmx == -Xmsv:设置初始堆大小与最大值一致,可以减轻伸缩堆大小带来的压力,与 AlwaysPreTouch 参数配合使用,在启动时提交所有内存,避免在最终使用中出现系统停顿 。
- -XX:+ UseTransparentHugePages:能够大大提高大堆的性能,同时建议在 Linux 上使用时将 /sys/kernel/mm/transparent_hugepage/enabled 和 /sys/kernel/mm/transparent_hugepage/defragv 设置为:madvise,同时与 AlwaysPreTouch 一起使用时,init 和 shutdownv 速度会更快,因为它将使用更大的页面进行预处理 。
- -XX:+UseNUMA:虽然 Shenandoah 尚未明确支持 NUMA(Non-Uniform Memory Access),但最好启用此功能以在多插槽主机上启用 NUMA 交错 。与 AlwaysPreTouch 相结合,它提供了比默认配置更好的性能 。
推荐阅读
- 运行 JavaScript 代码片段的 20 种工具
- 重复开店会受到什么惩罚 淘宝店有违规,很长时间了,如何重新开店
- 梦见自己戴了一只玉手镯 梦见自己戴上一个新的玉手镯,划破手
- SEO新人切忌盲目跟风 SEO理论并不等于实际
- 松阳新兴乡,茶叶催生四大特色产业村
- 新站SEO优化的基础设置有哪些
- Google的新广告策略严重影响OTA巨头流量和业绩
- 龙润即溶茶珍 饮爆健康新时尚收藏
- 小米|小米又一款304不锈钢新品:500ml便携咖啡杯 倒了也不漏
- 福村梅记创意包装普洱新茶倍受收藏者青睐