原創(chuàng)文章案训,轉(zhuǎn)載請注明出處!
源碼地址:
介紹
GraalVM最佳實(shí)踐粪糙,使用Java開發(fā)CLI强霎、Desktop(JavaFX)、Web(SpringBoot)項(xiàng)目蓉冈,并使用native-image技術(shù)把Java代碼靜態(tài)編譯為獨(dú)立可執(zhí)行文件(本機(jī)映像)城舞。
GraalVM讓Java再次變得強(qiáng)大,使用native-image把程序編譯為目標(biāo)平臺的可執(zhí)行文件寞酿,脫離jvm直接運(yùn)行椿争,啟動(dòng)速度飛快,內(nèi)存負(fù)載也很低熟嫩。
模塊概覽
體驗(yàn)我已經(jīng)編譯好的可執(zhí)行文件(Windows、Linux褐捻、Mac)掸茅,點(diǎn)此下載。
下面的性能測試結(jié)果是在我本機(jī)Windows上測試的柠逞,測試結(jié)果與機(jī)器配置有關(guān)昧狮,尤其是
native-image
編譯耗時(shí)。
↓標(biāo)簽 \ 模塊→ | 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 |
啟動(dòng)耗時(shí)(jvm) | 0.713s | 2.555s | 1.793s |
啟動(dòng)耗時(shí)(native-image) | 0.047s | 0.665s | 0.216s |
內(nèi)存負(fù)載(jvm) | 38.8m | 309.3m | 440.5m |
內(nèi)存負(fù)載(native-image) | 3.1m | 60.4m | 70.2m |
編譯耗時(shí)(native-image) | 24.786s | 93.455s | 99.434s |
可執(zhí)行文件大邪遄场(7z壓縮) | 8.03m (7z : 1.68m) | 62.7m (7z : 13.1m) | 66.5m (7z : 13.9m) |
開發(fā)環(huán)境
以下是我本機(jī)的開發(fā)環(huán)境逗鸣,理論上windows、linux绰精、mac都是支持的(注意不同平臺的 GraalVM SDK 和 native-image的依賴是不一樣的)撒璧。
- Windows 10 (CPU: i7-7700, RAM: 16G)
- IntelliJ IDEA 2020
- jdk-11.0.10
其實(shí)也可以不用,因?yàn)镚raalVM是自帶OpenJDK的
- graalvm-ce-java11-21.0.0.2
- Visual Sutdio 2019
環(huán)境配置(Windows笨使,Linux卿樱,Mac)
詳細(xì)的開發(fā)環(huán)境配置等教程可訪問我的項(xiàng)目地址: