1 月 27 日消息,龍芯中科今日于龍芯開源社區(qū)正式對(duì)外發(fā)布基于 OpenJDK 17 的龍芯平臺(tái) Java 環(huán)境。
Java 17 提供了數(shù)千種性能、穩(wěn)定性和安全性更新,以及 14 個(gè) JEP(JDK Enhancement Proposal,即 JDK 增強(qiáng)建議)來進(jìn)一步優(yōu)化 Java 語言和平臺(tái),從而幫助開發(fā)人員提高工作效率。
此次新發(fā)布的版本,除了上述上游更新以外,龍芯團(tuán)隊(duì)針對(duì)龍芯平臺(tái)特別是 LoongArch 平臺(tái)進(jìn)行了新功能開發(fā)和優(yōu)化,具體如下:
符合 TCK 標(biāo)準(zhǔn):
龍芯平臺(tái) Java 17 環(huán)境經(jīng)過驗(yàn)證符合 Java SE 17,新應(yīng)用程序和現(xiàn)有應(yīng)用程序無需修改即可運(yùn)行。
支持 C1 編譯器和分層編譯:
C2 編譯器(Server Compiler)主要滿足了 Java 應(yīng)用的峰值性能需求,此次發(fā)布的 LoongArch64 平臺(tái)環(huán)境支持 C1 編譯器(Client Compiler)和分層編譯,可進(jìn)一步滿足對(duì)啟動(dòng)性能有要求的 Java 應(yīng)用,比如桌面應(yīng)用。
通過實(shí)測(cè),龍芯平臺(tái)開啟 C1 和分層編譯之后,部分應(yīng)用得到了顯著提升:Eclipse 啟動(dòng)時(shí)間減少 16.4%,NetBeans 啟動(dòng)時(shí)間減少 20.1%,SPECjvm2008 中的 startup 項(xiàng)提升 13.4%,Dacapo 中 luindex 和 fop 用時(shí)分別降低 31.9% 和 29.2%。
LoongArch 向量指令優(yōu)化:
此次版本通過使用 LoongArch 向量指令對(duì) C2 編譯器進(jìn)行了自動(dòng)向量化優(yōu)化,同時(shí)還進(jìn)行了 Vector API 的硬件支持。
通過實(shí)測(cè),開啟向量優(yōu)化后,在 LoongArch64 平臺(tái)上 SPECjvm2008 中的 scimark.lu.small 提升了 102.7%,JMH Microbenchmarks 含有 Vector 關(guān)鍵字的 168 項(xiàng)測(cè)試中,計(jì)時(shí)類測(cè)試中有 39 項(xiàng)用時(shí)降低 1/2 以上,吞吐量類測(cè)試中有 26 項(xiàng)提升 2 倍以上、其中最高項(xiàng)提升了 200 倍以上。
支持 ZGC:
ZGC(The Z Garbage Collector),是一款低延遲垃圾回收器,它的設(shè)計(jì)目標(biāo)包括:
亞毫秒級(jí)最大停頓時(shí)間暫停時(shí)間不隨堆的大小、存活集及根集的大小的增加而增加支持 8MB 至 16TB 級(jí)別的堆大小通過實(shí)測(cè),龍芯平臺(tái)(LoongArch64)開啟 ZGC 后,在 3C5000L 雙路上 SPECjbb2015 max-jOPS 提升 27.8%,critical-jOPS 提升 200% 以上。
加解密類優(yōu)化:
此次版本通過 Intrinsics 方式使用 LoongArch 基礎(chǔ)指令對(duì) SHA1、SHA256、AES、MD5 以及 CRC32 相關(guān) API 進(jìn)行優(yōu)化。這些優(yōu)化對(duì) SPECjvm2008 中的 crypto 等項(xiàng)目有顯著提升效果。
數(shù)組拷貝優(yōu)化:
此次版本針對(duì) LoongArch 進(jìn)行了數(shù)組拷貝相關(guān)操作的重構(gòu)和優(yōu)化。
通過 JMH Microbenchmarks 測(cè)試顯示,org.openjdk.bench.java.lang.ArrayCopy 相關(guān)測(cè)試用例優(yōu)化后平均執(zhí)行時(shí)間下降 33%,最多項(xiàng)下降了 76.77%,SPECjvm2008 中的 serial 項(xiàng)優(yōu)化后提升了 6% 以上。
原子指令優(yōu)化:
除了上述優(yōu)化以外,此次發(fā)布的版本還包含針對(duì)龍芯平臺(tái)的一些故障修復(fù)。這些優(yōu)化和故障修復(fù)中的部分內(nèi)容已集成至龍芯平臺(tái)低版本 JDK 中,更多內(nèi)容會(huì)根據(jù)情況陸續(xù)集成至低版本 JDK 中。
龍芯平臺(tái) Java 17 環(huán)境:點(diǎn)此下載
特別提醒:本網(wǎng)信息來自于互聯(lián)網(wǎng),目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。本站不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我們,本站將會(huì)在24小時(shí)內(nèi)處理完畢。