jdk8参数详解(可提升性能2至5倍)

身为一个有资深摸鱼经验,工作7年的程序员,不要说JDK16,JDK8我还没学会……

此处省略一万个尴尬。

Austin,Texas-2021年3月16日,Oracle发布了JDK16,带着懵逼的状态,在Oracle看了前100个英文单词后,果断选择中文翻译。

jdk8参数详解(可提升性能2至5倍)(1)

根据多年英语不及格的经验,一般一篇英文文章,第一段就是本文的中心思想,其他的根据个人精力酌情阅读。

开篇指出了JDK16竟新增了17个功能,可谓是前无古人,将进一步提高开发人员生产力。

之所以增加这么多功能,主要因为微服务架构,以及大数据,云原生等技术的高速发展,迫使JDK支持也水涨船高。让我想起计算机界的摩尔定律,放在软件上是否也同样适用?

因篇幅较长,本篇重点说明下Vector API.

这里给大家普及下JEP的概念,英文全称JDK Enhancement Process,即JDK增强过程。

  • JEP 338: Vector API (Incubator) – Provides an initial iteration of an incubator module, jdk.incubator.vector, to express vector computations that reliably compile at runtime to optimal vector hardware instructions on supported CPU architectures.

中文翻译:

  • JEP 338:矢量API(孵化器) –提供孵化器模块jdk.incubator.vector的初始迭代,以表达可在运行时可靠地编译为支持的CPU架构上的最佳矢量硬件指令的矢量计算。

jdk8参数详解(可提升性能2至5倍)(2)

Vector API 是 JDK 中配备的一个孵化模块jdk.incubator.vector,用于表达矢量计算,编译为所支持的 CPU 架构上的最佳硬件指令。以实现优于同等标量计算的性能。矢量API提供了一种使用Java编写复杂矢量算法的机制,该机制使用 HotSpot 虚拟机中预先存在的支持连同一套用户模型进行矢量化,使其更可预测且更具健壮性。该提案的目标包括提供一个清晰简洁的API来表达一系列向量计算,通过支持多个 CPU 架构实现平台无关性,以及在 x64 和 AArch64 架构上提供可靠的运行时编译和性能。优雅降级也是一个目标,在这个目标中,如果向量计算在运行时不能完全表示为硬件向量指令序列,那么向量计算将优雅地降级,并且仍然可以正常工作,原因可能是某个架构不支持某些指令,或者是其它CPU架构不受支持。

Vector AP本质上是一组通用Java编程接口,其核心是通过Java虚拟机生成硬件所支持SIMD指令来加速性能,生产验证效果显著,且充分利用 Java/JVM 开发维护高效可靠的能力,并对典型数据科学场景具有显著的加速效果。根据 OpenJDK 官方公布的数据,其对浮点矩阵乘法可获得 2~5 倍性能提速,而对于浮点向量点积运算,则可获得 14~16 倍的性能优化效果。

jdk8参数详解(可提升性能2至5倍)(3)

SIMD全称Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。

关于Vector更详细的解释请参考网址:https://openjdk.java.net/jeps/338

因能力有限,先介绍这么多,低头看向桌子,已发现根根白色,不知是窗外明月映射,还是一夜白头,忍不住对自己说好菜……

想要见证,菜鸟程序员的逆袭之路吗?关注下,让我们拭目以待

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页