zsh Zinitに変える をしたけど遅くなってきたので調査した
調査方法
〇〇envのせいでzshの起動が遅いからチューニングした - Qiita
起動速度の計測
zshとNeovimの簡単な起動速度の測定方法
zprofを使ってどの処理に時間かかっているかを測定
zshの起動を高速化した - memo/note/blog
コメントアウトしながらどれが遅いかを調査
やったこと
compinitを1回だけ実行するようにした
複数回実行している箇所があったので直した
brew --prefix
コマンドを1回だけ実行するようにした
brewで入れたコマンドにpathを通すために、毎回 $(brew --prefix)
でbrewのディレクトリを取得していたが、これが結構時間がかかっていた。
↓
zinit → sheldon に移行した
パッケージマネージャはもともと zplug を使っていて、1年くらい前に zinit に移行したが、あるとき作者さんがリポジトリを削除して、現在あるのはfork版となっている。
メンテナンスに不安を感じたのと、設定が難しいなと感じていたので sheldon に移行した。
.zshrc
~/.config/sheldon/plugins.toml
これにより、ほとんどの設定やプラグインを非同期で読み込むようになり起動時には時間があまりかからなくなった。
結果
- もともと1.4sかかっていたのが、
brew --prefix
の改善で500msまで早くなった
- zinit → sheldon移行で200msまで早くなった