iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Modern Web

使用 Clojure 當個 Full-stack 開發者系列 第 27

[Day 27] 沒有銀彈

  • 分享至 

  • xImage
  •  

今天來講講jvm的一大缺點,啟動速度慢

光啟動我們這次簡單的app,他都要花超久的時間啟動

尤其是我們選配低等級的vm

後來有個技術可以把東西先包成binary,這樣啟動時間可以快滿多的

Graalvm,最簡單的一句話說明:

GraalVM compiles your Java applications ahead of time into standalone binaries.

但是,他的repl就會有些問題(未來應該會解決),還有一些lib的還需要調整,包裝成aot會有問題

參考限制

那對於我們現在是滿簡單的,只需要兩個步驟

  1. 安裝native-image
  2. 將jar檔用vative-image包成可執行檔

下載

這邊我是使用mac

按照他的步驟,下載對應的版本,解壓縮之後放到 /Library/Java/JavaVirtualMachines

sudo mv graalvm-jdk-17.0.8+9.1 /Library/Java/JavaVirtualMachines

這邊我不想用髒我的環境,所以我把路徑獨立出來,在同個shall用一下環境變數

export GRAALVM=/Library/Java/JavaVirtualMachines/graalvm-jdk-17.0.8+9.1/Contents/Home

然後

$GRAALVM/bin/java -version

我們就可以看到對應的環境了

最後就是打包

$GRAALVM/bin/native-image -jar target/app.jar

最終就可以在根目錄看到一個app執行

./app 啟動速度就快滿多的(但跟其他語言比確實還是慢XDD)

沒有銀彈,一切都是取捨


上一篇
[Day 26] 邊開飛機邊換引擎
下一篇
[Day 28] The elegance
系列文
使用 Clojure 當個 Full-stack 開發者30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言