GraalVM最佳實踐,使用Java開發(fā)CLI、Desktop(JavaFX)、Web(SpringBoot)項目,并使用native-image技術(shù)把Java代碼靜態(tài)編譯為獨立可執(zhí)行文件(本機映像)

原創(chuàng)文章,轉(zhuǎn)載請注明出處!

源碼地址:

介紹

GraalVM最佳實踐,使用Java開發(fā)CLI、Desktop(JavaFX)、Web(SpringBoot)項目,并使用native-image技術(shù)把Java代碼靜態(tài)編譯為獨立可執(zhí)行文件(本機映像)。

GraalVM讓Java再次變得強大,使用native-image把程序編譯為目標平臺的可執(zhí)行文件,脫離jvm直接運行,啟動速度飛快,內(nèi)存負載也很低。

模塊概覽

體驗我已經(jīng)編譯好的可執(zhí)行文件(Windows、Linux、Mac),點此下載。

下面的性能測試結(jié)果是在我本機Windows上測試的,測試結(jié)果與機器配置有關(guān),尤其是 native-image 編譯耗時。

↓標簽 \ 模塊→ cli-normal desktop-javafx web-springboot
模塊描述 命令行應(yīng)用(無框架) 桌面應(yīng)用(JavaFx) Web應(yīng)用(SpringBoot)
JDK 8 or 11+ 11+ 8 or 11+
GraalVM CE-21.0.0.2+ CE-21.0.0.2+ CE-21.0.0.2+
Maven Plugin native-image-maven-plugin client-maven-plugin native-image-maven-plugin
啟動耗時(jvm) 0.713s 2.555s 1.793s
啟動耗時(native-image) 0.047s 0.665s 0.216s
內(nèi)存負載(jvm) 38.8m 309.3m 440.5m
內(nèi)存負載(native-image) 3.1m 60.4m 70.2m
編譯耗時(native-image) 24.786s 93.455s 99.434s
可執(zhí)行文件大?。?z壓縮) 8.03m (7z : 1.68m) 62.7m (7z : 13.1m) 66.5m (7z : 13.9m)

開發(fā)環(huán)境

以下是我本機的開發(fā)環(huán)境,理論上windows、linux、mac都是支持的(注意不同平臺的 GraalVM SDK 和 native-image的依賴是不一樣的)。

  • Windows 10 (CPU: i7-7700, RAM: 16G)
  • IntelliJ IDEA 2020
  • jdk-11.0.10 其實也可以不用,因為GraalVM是自帶OpenJDK的
  • graalvm-ce-java11-21.0.0.2
  • Visual Sutdio 2019

環(huán)境配置(Windows,Linux,Mac)

詳細的開發(fā)環(huán)境配置等教程可訪問我的項目地址:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容