RedHat推出Mandrel:使Java本地化

RedHat推出了一個新的Java發行版,Mandrel,它可以直接將Java應用程序編譯成本機代碼,從而可以在較低的內存中更快地啓動。

Mandrel是一個基於Oracle的GraalVM,由社區支持的額外的構建,兩者只是略有不同。RedHat的高級工程總監Mark Little解釋說:“最好將Mandrel描述成一個特別封裝了GraalVM原生鏡像的常規OpenJDK的發行版。”RedHat推出Mandrel背後的主要驅動因素是通過其“超音速亞原子Java”來驅動Quarkus框架的速度和效率。Quarkus是一個爲雲供應商提供快速重載本地開發以及容器化或無服務器分發的框架。自2019年首次推出以來,Quarkus一直強調其可以構建啓動速度更快、雲運營成本和資源更低的本地可執行文件的能力

GraalVM的負責人Thomas Wuerthinger,在迴應Mandrel發佈時說:“感謝@maxandersen和同事們積極參與@graalvmcommunity!”

Andres Dinn在Quarkus Insights系列視頻的第7集中解釋了GraalVM和Mandrel的作用。該視頻介紹了用法以及各種技術細節,並提出了一些問題,比如即時編譯和提前編譯之間的區別。 Dinn解釋了它們各自的優點和缺點以及最適合使用它們的地方。

Mandrel的GitHub倉庫是GraalVM的一個分支,但它尚未提供二進制發行版本。但是用戶可以按照提供的說明自行編譯JDK。

在性能基準測試方面,GraalVM的啓動時間快了50倍,內存使用減少了5倍。測試是針對Java的 HotSpot模式使用Quarkus框架的早期版本完成的。雖然這一改進需要額外的提前編譯時間,但它可以與Quarkus的原生LambdaAzure函數部署一起使用。

James Ward還提供了其他更多的技巧和竅門,他已經用本機編譯的形式對多個框架進行了基準測試。Ward介紹了性能改進的好處以及一些難題,比如依賴反射的應用程序。”這給GraalVM原生鏡像帶來了問題,因爲反射是在運行時發生的,這使得AOT編譯器很難找出執行路徑。“ Quarkus的主頁直接受益於此:RAM從73MB降到12MB(降低了83%),首次響應時間從0.943降爲0.016秒(降低了98%)。

開發人員現在可以在自己的構建中使用Mandrel,或者利用GraalVM社區版或任何JDK 11+發行版。感興趣的開發人員也可以使用這些工具來參加Quarkus黑客馬拉松

原文鏈接:

https://www.infoq.com/news/2020/07/mandrel-graalvm/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章