基于OpenJDK 11的龙芯平台Java环境发布
龙芯在此荣幸宣布基于OpenJDK 11的龙芯平台Java环境发布。Java 11包含17个JEP(JDK Enhancement Proposal,即JDK增强建议),这是自Java 8后的首个长期支持 (Long-Term Support, LTS) 版本。Java 11新增的JEP包括:
- JEP 181: Nest-Based Access Control
- JEP 309: Dynamic Class-File Constants
- JEP 315: Improve Aarch64 Intrinsics
- JEP 318: Epsilon: A No-Op Garbage Collector
- JEP 320: Remove the Java EE and CORBA Modules
- JEP 321: HTTP Client (Standard)
- JEP 323: Local-Variable Syntax for Lambda Parameters
- JEP 324: Key Agreement with Curve25519 and Curve448
- JEP 327: Unicode 10
- JEP 328: Flight Recorder
- JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms
- JEP 330: Launch Single-File Source-Code Programs
- JEP 331: Low-Overhead Heap Profiling
- JEP 332: Transport Layer Security (TLS) 1.3
- JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
- JEP 335: Deprecate the Nashorn JavaScript Engine
- JEP 336: Deprecate the Pack200 Tools and API
关于Java 11更详细的内容请见https://www.oracle.com/java/technologies/javase/11-relnotes.html
龙芯平台关键更新
此次发布的龙芯平台Java 11环境,对应社区11.0.12+7版本,除了包含上述上游更新以外,更是包含了龙芯公司针对龙芯平台进行的新功能开发和优化。
符合TCK标准
龙芯平台Java 11环境经过验证符合Java SE 11,新应用程序和现有应用程序无需修改即可运行。
加解密类优化
此次版本通过Intrinsics方式使用LoongArch基础指令对SHA1、SHA256、AES相关API进行优化[1]。这些优化对SPECjvm2008中的crypto等项目有显著提升效果。
数组拷贝优化
此次版本针对LoongArch进行了数组拷贝相关Stub的重构和优化[2]。通过JMH Microbenchmarks测试显示,org.openjdk.bench.java.lang.ArrayCopy相关测试用例优化后平均执行时间下降33%,最多项下降了76.77%,SPECjvm2008中的serial项优化后提升了6%以上。
原子指令优化
此次版本通过使用LoongArch原子访存指令减少了内存屏障指令的使用,对volatile相关操作实现了优化。
其他
除了上述优化以外,此次发布的版本还包含针对龙芯平台的一些故障修复。
[1][2] 部分优化已在低版本中集成发布,见8.1.8发行注记