RedHat 推出 Mandrel:使 Java 本地化
RedHat 推出了一個(gè)新的 Java 發(fā)行版,Mandrel,它可以直接將 Java 應(yīng)用程序編譯成本機(jī)代碼,從而可以在較低的內(nèi)存中更快地啟動(dòng)。
Mandrel 是一個(gè)基于 Oracle 的GraalVM,由社區(qū)支持的額外的構(gòu)建,兩者只是略有不同。RedHat 的高級(jí)工程總監(jiān) Mark Little 解釋說(shuō):“最好將 Mandrel 描述成一個(gè)特別封裝了 GraalVM 原生鏡像的常規(guī) OpenJDK 的發(fā)行版。”RedHat 推出 Mandrel 背后的主要驅(qū)動(dòng)因素是通過(guò)其“超音速亞原子 Java”來(lái)驅(qū)動(dòng) Quarkus 框架的速度和效率。Quarkus 是一個(gè)為云供應(yīng)商提供快速重載本地開(kāi)發(fā)以及容器化或無(wú)服務(wù)器分發(fā)的框架。自 2019 年首次推出以來(lái),Quarkus 一直強(qiáng)調(diào)其可以構(gòu)建啟動(dòng)速度更快、云運(yùn)營(yíng)成本和資源更低的本地可執(zhí)行文件的能力。
GraalVM 的負(fù)責(zé)人 Thomas Wuerthinger,在回應(yīng) Mandrel 發(fā)布時(shí)說(shuō):“感謝 @maxandersen 和同事們積極參與 @graalvmcommunity!”
Andres Dinn 在 Quarkus Insights 系列視頻的第 7 集中解釋了 GraalVM 和 Mandrel 的作用。該視頻介紹了用法以及各種技術(shù)細(xì)節(jié),并提出了一些問(wèn)題,比如即時(shí)編譯和提前編譯之間的區(qū)別。 Dinn 解釋了它們各自的優(yōu)點(diǎn)和缺點(diǎn)以及最適合使用它們的地方。
Mandrel 的 GitHub 倉(cāng)庫(kù)是 GraalVM 的一個(gè)分支,但它尚未提供二進(jìn)制發(fā)行版本。但是用戶可以按照提供的說(shuō)明自行編譯 JDK。
在性能基準(zhǔn)測(cè)試方面,GraalVM 的啟動(dòng)時(shí)間快了 50 倍,內(nèi)存使用減少了 5 倍。測(cè)試是針對(duì) Java 的 HotSpot 模式使用 Quarkus 框架的早期版本完成的。雖然這一改進(jìn)需要額外的提前編譯時(shí)間,但它可以與 Quarkus 的原生 Lambda和Azure 函數(shù)部署一起使用。
James Ward 還提供了其他更多的技巧和竅門(mén),他已經(jīng)用本機(jī)編譯的形式對(duì)多個(gè)框架進(jìn)行了基準(zhǔn)測(cè)試。Ward 介紹了性能改進(jìn)的好處以及一些難題,比如依賴反射的應(yīng)用程序。”這給 GraalVM 原生鏡像帶來(lái)了問(wèn)題,因?yàn)榉瓷涫窃谶\(yùn)行時(shí)發(fā)生的,這使得 AOT 編譯器很難找出執(zhí)行路徑。“Quarkus 的主頁(yè)直接受益于此:RAM 從 73MB 降到 12MB(降低了 83%),首次響應(yīng)時(shí)間從 0.943 降為 0.016 秒(降低了 98%)。
開(kāi)發(fā)人員現(xiàn)在可以在自己的構(gòu)建中使用 Mandrel,或者利用 GraalVM 社區(qū)版或任何 JDK 11+ 發(fā)行版。感興趣的開(kāi)發(fā)人員也可以使用這些工具來(lái)參加Quarkus 黑客馬拉松。
原文鏈接:https://www.infoq.com/news/2020/07/mandrel-graalvm/
總結(jié)
以上是生活随笔為你收集整理的RedHat 推出 Mandrel:使 Java 本地化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 滴答滴答滴是什么歌啊
- 下一篇: 游戏衍生内容授权与商业化创新,腾讯做了什