1. 程式人生 > 資訊 >基於 OpenJDK 17 的龍芯平臺 Java 環境釋出,LoongArch 平臺同步支援

基於 OpenJDK 17 的龍芯平臺 Java 環境釋出,LoongArch 平臺同步支援

1 月 27 日訊息,龍芯中科今日於龍芯開源社群正式對外發布基於 OpenJDK 17 的龍芯平臺 Java 環境

Java 17 提供了數千種性能、穩定性和安全性更新,以及 14 個 JEP(JDK Enhancement Proposal,即 JDK 增強建議)來進一步優化 Java 語言和平臺,從而幫助開發人員提高工作效率。

瞭解到,此次新發布的版本,除了上述上游更新以外,龍芯團隊針對龍芯平臺特別是 LoongArch 平臺進行了新功能開發和優化,具體如下:

符合 TCK 標準:

龍芯平臺 Java 17 環境經過驗證符合 Java SE 17,新應用程式和現有應用程式無需修改即可執行。

支援 C1 編譯器和分層編譯:

C2 編譯器(Server Compiler)主要滿足了 Java 應用的峰值效能需求,此次釋出的 LoongArch64 平臺環境支援 C1 編譯器(Client Compiler)和分層編譯,可進一步滿足對啟動效能有要求的 Java 應用,比如桌面應用。

通過實測,龍芯平臺開啟 C1 和分層編譯之後,部分應用得到了顯著提升:Eclipse 啟動時間減少 16.4%,NetBeans 啟動時間減少 20.1%,SPECjvm2008 中的 startup 項提升 13.4%,Dacapo 中 luindex 和 fop 用時分別降低 31.9% 和 29.2%。

LoongArch 向量指令優化:

此次版本通過使用 LoongArch 向量指令對 C2 編譯器進行了自動向量化優化,同時還進行了 Vector API 的硬體支援。

通過實測,開啟向量優化後,在 LoongArch64 平臺上 SPECjvm2008 中的 scimark.lu.small 提升了 102.7%,JMH Microbenchmarks 含有 Vector 關鍵字的 168 項測試中,計時類測試中有 39 項用時降低 1/2 以上,吞吐量類測試中有 26 項提升 2 倍以上、其中最高項提升了 200 倍以上。

支援 ZGC:

ZGC(The Z Garbage Collector),是一款低延遲垃圾回收器,它的設計目標包括:

  • 亞毫秒級最大停頓時間

  • 暫停時間不隨堆的大小、存活集及根集的大小的增加而增加

  • 支援 8MB 至 16TB 級別的堆大小

通過實測,龍芯平臺(LoongArch64)開啟 ZGC 後,在 3C5000L 雙路上 SPECjbb2015 max-jOPS 提升 27.8%,critical-jOPS 提升 200% 以上。

加解密類優化:

此次版本通過 Intrinsics 方式使用 LoongArch 基礎指令對 SHA1、SHA256、AES、MD5 以及 CRC32 相關 API 進行優化。這些優化對 SPECjvm2008 中的 crypto 等專案有顯著提升效果。

陣列拷貝優化:

此次版本針對 LoongArch 進行了陣列拷貝相關操作的重構和優化。

通過 JMH Microbenchmarks 測試顯示,org.openjdk.bench.java.lang.ArrayCopy 相關測試用例優化後平均執行時間下降 33%,最多項下降了 76.77%,SPECjvm2008 中的 serial 項優化後提升了 6% 以上。

原子指令優化:

除了上述優化以外,此次釋出的版本還包含針對龍芯平臺的一些故障修復。這些優化和故障修復中的部分內容已整合至龍芯平臺低版本 JDK 中,更多內容會根據情況陸續整合至低版本 JDK 中。

龍芯平臺 Java 17 環境:點此下載