Profiling zsh and fixing my slow shell

Ellie Huxtable

剖析 zsh 並修復緩慢的 shell

我的 zsh 啟動速度已經有點慢了一陣子。還不到造成嚴重困擾的程度,但一直是我想找時間處理的問題。Thorsten Ball(托爾斯滕·鮑爾)針對這個主題寫了一篇很棒的文章,請見這裡。也許我穿著加重鞋跑太久了!

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

我的做法如下:

  1. 在我的 .zshrc 最頂端加入 zmodload zsh/zprof
  2. 在同一個檔案的最底部加入 zprof

重新開啟一個新的 shell 後,就會看到一張清楚的表格,顯示 zsh 在哪些地方花費時間

很明顯,罪魁禍首就是 nvm!稍微 Google 一下後,發現我似乎是最後一個才搞清楚這件事的人。哎呀。

修復方法

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

Lazy loading(延遲載入)

zsh-lazyload 能讓你 lazy load 指令!這樣一來,只有在實際使用 nvm 時,才需要承受 nvm 速度緩慢的代價。還不錯。

按照 readme 說明安裝此外掛(我是用 zplug),然後

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

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

替代方案

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

原文由 Ellie Huxtable 發布

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