剖析 zsh 並修復緩慢的 shell
我的 zsh 啟動速度已經有點慢了一陣子。還不到造成嚴重困擾的程度,但一直是我想找時間處理的問題。Thorsten Ball(托爾斯滕·鮑爾)針對這個主題寫了一篇很棒的文章,請見這裡。也許我穿著加重鞋跑太久了!
最近我一直在調整 atuin init 這個指令——它會在 shell 啟動時執行。我想確保它的速度夠快,不會讓任何人的 shell 變慢。
我的做法如下:
- 在我的
.zshrc最頂端加入zmodload zsh/zprof - 在同一個檔案的最底部加入
zprof
重新開啟一個新的 shell 後,就會看到一張清楚的表格,顯示 zsh 在哪些地方花費時間

很明顯,罪魁禍首就是 nvm!稍微 Google 一下後,發現我似乎是最後一個才搞清楚這件事的人。哎呀。
修復方法
我還算蠻常使用 nvm,所以來把它修好吧
Lazy loading(延遲載入)
zsh-lazyload 能讓你 lazy load 指令!這樣一來,只有在實際使用 nvm 時,才需要承受 nvm 速度緩慢的代價。還不錯。
按照 readme 說明安裝此外掛(我是用 zplug),然後
lazyload nvm -- 'source ~/.nvm/nvm.sh'加到我的 .zshrc 裡。這樣就搞定了!
替代方案
隨機一篇部落格