Zsh をシュッと高速化する
Zsh のレスポンスが悪い
最近会社の PC が新しくなったので、環境の整理をしています。
.zshrc
がゴチャゴチャしているかつ、Enter 連打するとなぜか peco + z が発動する現象が起こるのでヤックシェービングを兼ねてチューニングしてみました。
以下の記事を参考にしました。
改善前
タイムを計測するのは効果がわかりやすいので載せています。数値で見ると既にそれなりのスピードは出ていそうです。
~ ❯❯❯ time ( zsh -i -c exit ) ( zsh -i -c exit; ) 0.13s user 0.13s system 76% cpu 0.346 total
改善内容
auto compile
を追加 (-0.01)
これは無条件におすすめです
[add auto compile · Asuforce/dotfiles@86a6790 · GitHub
~ ❯❯❯ time ( zsh -i -c exit ) ( zsh -i -c exit; ) 0.12s user 0.11s system 80% cpu 0.287 total
.zshrc
から .zshenv
に環境変数の設定を移動 (+0.01)
遅くなった...けどファイルが整理されるので採用)
mv ENV to .zshenv · Asuforce/dotfiles@5b5ef94 · GitHub
~ ❯❯❯ time ( zsh -i -c exit ) ( zsh -i -c exit; ) 0.13s user 0.13s system 79% cpu 0.331 total
.zshenv
に $TMUX
の判定を追加 (-0.06)
TMUX が起動していたら環境変数を既に読み込ませているので export
の処理をスルーできます。
Don't read ENV when tmux already start. · Asuforce/dotfiles@e8f94d9 · GitHub
~ ❯❯❯ time ( zsh -i -c exit ) ( zsh -i -c exit; ) 0.07s user 0.04s system 81% cpu 0.135 total
タイムは測ってないですが anyenv init
時に --no-rehash
を付けて高速化できます。
add --no-rehash · Asuforce/dotfiles@329f16b · GitHub
まとめ
スコアとコミットだけ載せてますが、雰囲気は伝わると思います。
tmux を使って新しい window or pane を開いた時再度読み込まれてしまうのがよくなかったようです。
かなり早くなったので満足です。次はプラグイン達を整理していきます。