valid,invalid

関心を持てる事柄について

zshの起動がいつの間にか速くなっていた

zshの起動が遅かったのでzprofでプロファイリングしながら起動速度を3倍速くした - valid,invalid からしばらく経ち、久々にzshの起動時間を計測してみた。

前回

起動1秒でたまにイラッとする程度。

for i in $(seq 1 10); do time zsh -i -c exit; done
zsh -i -c exit  0.79s user 0.40s system 108% cpu 1.100 total
zsh -i -c exit  0.78s user 0.39s system 108% cpu 1.070 total
zsh -i -c exit  0.77s user 0.39s system 108% cpu 1.069 total
zsh -i -c exit  0.79s user 0.39s system 109% cpu 1.083 total
zsh -i -c exit  0.78s user 0.38s system 108% cpu 1.065 total
zsh -i -c exit  0.80s user 0.40s system 108% cpu 1.099 total
zsh -i -c exit  0.79s user 0.40s system 109% cpu 1.090 total
zsh -i -c exit  0.80s user 0.40s system 107% cpu 1.110 total
zsh -i -c exit  0.79s user 0.40s system 108% cpu 1.100 total
zsh -i -c exit  0.80s user 0.40s system 108% cpu 1.100 total

今回

前回同様まずはおおまかな起動時間を測ってみた。

$ for i in $(seq 1 10); do time zsh -i -c exit; done
zsh -i -c exit  0.49s user 0.25s system 109% cpu 0.676 total
zsh -i -c exit  0.48s user 0.23s system 109% cpu 0.650 total
zsh -i -c exit  0.49s user 0.24s system 109% cpu 0.661 total
zsh -i -c exit  0.48s user 0.24s system 110% cpu 0.658 total
zsh -i -c exit  0.48s user 0.23s system 110% cpu 0.648 total
zsh -i -c exit  0.49s user 0.24s system 111% cpu 0.651 total
zsh -i -c exit  0.48s user 0.24s system 110% cpu 0.649 total
zsh -i -c exit  0.48s user 0.24s system 110% cpu 0.652 total
zsh -i -c exit  0.48s user 0.23s system 110% cpu 0.643 total
zsh -i -c exit  0.49s user 0.24s system 110% cpu 0.654 total

そこまで遅くなかった。というか、計測してなかったけど前回よりいつの間にか早くなっていた。

また、前回ボトルネックの一端であったkubectlの補完(とkubernetes関連のutil)を今はオフれる*1ことに気づいたので、オフにしてみたら、さらに速くなった。

$ for i in $(seq 1 10); do time zsh -i -c exit; done
zsh -i -c exit  0.20s user 0.20s system 95% cpu 0.420 total
zsh -i -c exit  0.20s user 0.20s system 95% cpu 0.420 total
zsh -i -c exit  0.20s user 0.20s system 95% cpu 0.421 total
zsh -i -c exit  0.20s user 0.20s system 95% cpu 0.423 total
zsh -i -c exit  0.20s user 0.20s system 95% cpu 0.419 total
zsh -i -c exit  0.20s user 0.20s system 95% cpu 0.419 total
zsh -i -c exit  0.21s user 0.20s system 95% cpu 0.421 total
zsh -i -c exit  0.20s user 0.20s system 95% cpu 0.417 total
zsh -i -c exit  0.20s user 0.20s system 95% cpu 0.419 total
zsh -i -c exit  0.20s user 0.20s system 95% cpu 0.422 total

いつの間にか早くなっていた理由

この2年ぐらいでそんなに.zshrcいじったっけ?と思ってdiffしてみたらけっこう変更してた。

計測してないが、おそらく高速化に寄与したであろう変更は

  • preztoやめてoh-my-zshにした
  • plugin managerをantigenに寄せて、ついでに使ってないpluginを消した
  • antigenをv2にした
  • zshをupdateした

あたり。

定期的にpluginを消したりソフトウェアをupdateするのは大事だなぁと改めて思ったところだが、antigenのメンテナンス止まっているのか... また移行しないと...

環境

*1:kubernetes使っていないため