iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0

bun 強威猛

前言

自從我開始用 bun 開始,我確實被 bun 的速度驚艷到,那時候我的同事還有其他組別的人
不外乎在用 npm, yarn,那時候我用 bun 即便那時候在 bun beta 版的時候有一些小瑕疵
但瑕不掩瑜,也解決不少開發上的各種安裝問題,那到底有多快?口說無憑,必須要有實際的數據佐證
才能證明 bun 的威能

開始測試效能差異

我們測試的基準以常見的幾個依賴做實驗

  1. 安裝 express
  2. 安裝 react
  3. 安裝 lodash
  4. 安裝 nextjs
  5. 安裝 axios

這幾個別看只有五個依賴,但其實內部的遞移大概安裝了 114 個依賴,各種依賴交錯複雜,足矣看出安裝效能上的差異
已經算是一個中型專案的規模

評測基準

因為安裝速度,在現實中不單純是一個數字,所以我們拿幾個現實中的基準來看這件事

  1. 冷安裝(Cold Install) : 沒有 lockFile, 沒有本地快取,什麼都要從網路上從頭裝
  2. **有 lockFile 沒有 node_modules 的狀態 ** : 這是 CI/CD 比較常見的狀況每次配置都是全新的環境
  3. no-op : node_modules 已經存在且依賴沒有任何改動,只重跑一次 install (這個在第一次安裝時很常見)

我們以這三種狀況進行評測標準

具體我們怎麼測這三種狀況呢?

我們先把相關依賴的 package.json 先弄出來

{
  "name": "testa",
  "version": "1.0.0",
  "dependencies": {
    "axios": "^1.18.1",
    "express": "^5.2.1",
    "lodash": "^4.18.1",
    "next": "^16.2.10",
    "react": "^19.2.7"
  }
}
Cold install 可以考慮移除 cache 的方式或是把 cache 轉移到其他地方的方式執行

如果是 npm 的話可以用以下指令

安裝的部分 :

npm 的狀況下

npm install --no-cache

或是

npm install --cache /tmp/empty-cache --pefer-online

bun 的狀況下

bun install --no-cache

我們看看評測結果

bun
bun no cache

npm
npm 其他指令的狀況下
npm的狀況下

benchmark 結果

npm(prefer-online) npm(nocache) bun(no cache)
15s 16s 12.86s

(當然每個人的電腦可能都不盡相同,數據可能有所落差)

(補)我們把 node_modules 以及 cache 清乾淨

npm 的狀況下

rm -rf node_modules package-lock.json && npm cache clean --force

bun 的狀況下

rm -rf node_modules bun.lockb bun.lock && bun pm cache rm

cold install 結論

雖然 bun 仍然比 npm 快速,但現今這個年代來看差距看起來有變小,或許當年剛出時,確實有差距到 25

結論 : bun 勝出


測試看看有 lockFile 沒有 node_modules 的狀態

那這邊很簡單只要把 node_modules 刪除後重新安裝即可

benchmark 結果

npm 的狀況下

npm with cache

bun 的狀況下

bun with cache

npm(cache) bun(cache)
2s 215ms

(當然每個人的電腦可能都不盡相同,數據可能有所落差)

有 lockFile 沒有 node_modules 的狀態結論

在有 cache 的狀態下,這個就差距蠻大的,也就是說在部署或是重新安裝的時候
bun 的效能影響非常巨大 bun 大幅勝出


測試 no-op 的結果(也就是第一次安裝的結果)

npm 的狀況下

npm with cache

bun 的狀況下

bun with cache

npm(cache) bun(cache)
17s 12.6s

(當然每個人的電腦可能都不盡相同,數據可能有所落差)

no-ops 得結論

在一般安裝底下, bun 顯然快了不少, bun 勝出

結論

冷安裝(Cold Install) 有 lockFile 沒有 node_modules 的狀態 no-op
bun 表現比較好 bun 表現好到碾壓 bun 表現好很多

有此可知,bun 在效能的表現上確實好非常多!


上一篇
安裝與環境設定以及深入 Bun 組成
系列文
不只是快 —— Bun 30 天:從底層架構、全套工具鏈到生產部署4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言