作者 | 冷冷
GraalVM[1] 是一種高效能的虛擬機器,它可以顯著的提高程式的效能和執行效率,非常適合微服務。最近比較火的 Java 框架 Quarkus[2] 預設支援 GraalVM
下圖為 Quarkus 和傳統框架(SpringBoot) 等對比圖,更快的啟動資料、更小的記憶體消耗、更短的服務響應。
Spring Boot 2.4 開始逐步提供對 GraalVM 的支援,旨在提升上文所述的 啟動、記憶體、響應的使用體驗。
安裝 GraalVM目前官方社群版本最新為 20.3.0 ,是基於 OpenJDK 8u272 and 11.0.9 定製的,可以理解為 OpenJDK 的衍生版本 。官方推薦的是 SDKMAN[3] 用於快速安裝和切換不同版本 JDK 的工具 ,類似於 nodejs 的 nvm[4]。使用類似命令即可完成指定版本安裝和指定預設版本
sdk install java 11.0.9.hs-adpt
sdk default java 11.0.9.hs-adpt
不過安裝過程中需要從國外下載相關資源 ,筆者在嘗試後使用體驗並不是很好,所有建議大家下載指定版本 GraalVM 安裝即可(和 JDK 安裝方式一樣)。
安裝成功檢視版本⋊> ~ java -version 11:30:34openjdk version "11.0.9" 2020-10-20OpenJDK Runtime Environment GraalVM CE 20.3.0 (build 11.0.9+10-jvmci-20.3-b06)OpenJDK 64-Bit Server VM GraalVM CE 20.3.0 (build 11.0.9+10-jvmci-20.3-b06, mixed mode, sharing)
安裝 native-imagenative-image 是由 Oracle Labs 開發的一種 AOT 編譯器,應用所需的 class 依賴項及 runtime 庫打包編譯生成一個單獨可執行檔案。具有高效的 startup 及較小的執行時記憶體開銷的優勢。
但 GraalVM 並未內建只是提供 gu 安裝工具,需要我們單獨安裝。
啟動應用 這裡執行的編譯後的可執行檔案而不是 jarcd target./com.example.demo.demoapplication
啟動時間 0.215 seconds
2020-12-18 12:30:40.625 INFO 94578 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 0.215 seconds (JVM running for 0.267)
看一下記憶體佔用 24.8203MBps aux | grep com.example.demo.demoapplication | grep -v grep | awk '{print $11 "\t" $6/1024"MB" }'./com.example.demo.demoapplication 24.8203MB
資料對比
最新評論
相關內容
- Spring Boot介面如何設計防篡改、防重放攻擊?
- ColorOS 12官宣:新特性彙總 | 一加有話說
- Spring Boot專案中如何定製攔截器?
- 深入理解java—Spring Boot如何使用JavaMailSender來發送郵件?
- 自定義的Spring Boot starter如何設定自動配置註解?
- Spring Boot Web專案教程,如何給Controller傳遞引數?
- java微服務開發最適合使用spring boot嗎?
- spring boot生產環境打包方式(jar/war),為什麼?
- spring boot有什麼好處嗎?哪裡可以學呢?
- 關於spring boot同時請求時出現的物件被覆蓋的問題?