
自從我開始用 bun 開始,我確實被 bun 的速度驚艷到,那時候我的同事還有其他組別的人
不外乎在用 npm, yarn,那時候我用 bun 即便那時候在 bun beta 版的時候有一些小瑕疵
但瑕不掩瑜,也解決不少開發上的各種安裝問題,那到底有多快?口說無憑,必須要有實際的數據佐證
才能證明 bun 的威能
我們測試的基準以常見的幾個依賴做實驗
這幾個別看只有五個依賴,但其實內部的遞移大概安裝了 114 個依賴,各種依賴交錯複雜,足矣看出安裝效能上的差異
已經算是一個中型專案的規模
因為安裝速度,在現實中不單純是一個數字,所以我們拿幾個現實中的基準來看這件事
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
npm
| npm(prefer-online) | npm(nocache) | bun(no cache) |
|---|---|---|
| 15s | 16s | 12.86s |
(當然每個人的電腦可能都不盡相同,數據可能有所落差)
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
雖然 bun 仍然比 npm 快速,但現今這個年代來看差距看起來有變小,或許當年剛出時,確實有差距到 25 倍
結論 : bun 勝出
測試看看有 lockFile 沒有 node_modules 的狀態
那這邊很簡單只要把 node_modules 刪除後重新安裝即可
npm 的狀況下

bun 的狀況下

| npm(cache) | bun(cache) |
|---|---|
| 2s | 215ms |
(當然每個人的電腦可能都不盡相同,數據可能有所落差)
在有 cache 的狀態下,這個就差距蠻大的,也就是說在部署或是重新安裝的時候
bun 的效能影響非常巨大 bun 大幅勝出
測試 no-op 的結果(也就是第一次安裝的結果)
npm 的狀況下

bun 的狀況下

| npm(cache) | bun(cache) |
|---|---|
| 17s | 12.6s |
(當然每個人的電腦可能都不盡相同,數據可能有所落差)
在一般安裝底下, bun 顯然快了不少, bun 勝出
| 冷安裝(Cold Install) | 有 lockFile 沒有 node_modules 的狀態 | no-op |
|---|---|---|
| bun 表現比較好 | bun 表現好到碾壓 | bun 表現好很多 |
有此可知,bun 在效能的表現上確實好非常多!