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 裡。這樣就搞定了!

替代方案

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

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

留言