Profiling zsh and fixing my slow shell

Ellie Huxtable

剖析 zsh 並修復我那緩慢的 shell

原文由 Ellie Huxtable 于 發布,訂閱此部落格

我的 zsh 啟動速度已經有點慢了一陣子。雖然還不到非常惱人的程度,但一直是我想找時間處理的問題。Thorsten Ball 針對這個主題寫了一篇很棒的文章在這裡。或許我穿著加重鞋跑太久了!

最近我在研究 atuin init 這個指令——它會在 shell 啟動時執行。我想確保它的速度夠快,不會害任何人的 shell 變慢。

我的做法是:

  1. 在我的 .zshrc 最上面加上 zmodload zsh/zprof
  2. 在同一個檔案的最下面加上 zprof

重新開啟一個 shell 後,就會看到一張清楚的表格,顯示 zsh 都把時間花在哪裡

很明顯,罪魁禍首就是 nvm!稍微 Google 了一下,發現好像只剩我還沒搞清楚這件事。糟糕。

修復它

我還算常用 nvm,所以來把它修好吧

延遲載入

zsh-lazyload 可以讓你延遲載入指令!這樣一來,只有在真正使用 nvm 時,才需要承受 nvm 載入緩慢的代價。還不錯。

按照 readme 安裝這個外掛(我是用 zplug),然後

lazyload nvm -- 'source ~/.nvm/nvm.sh'

加到我的 .zshrc 裡。這樣就搞定了!

替代方案

現在有不少其他選擇。我一直在考慮要不要改用 asdf 或 mise,但還沒抽出時間好好研究哪一個最適合我。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言