dotfiles盆栽記1: zprofでプロファイリング

唐突なナンバリング記事。

github.com

モチベーション

dotfilesの盆栽は調べながらやっているのでメモ代わりとして記事を残していく。また、自分以外の方のdotfiles見るのは気合がいるので小出しで共有すると読みやすかったりするのではないか?なれば自分が小出しに共有しよう、という魂胆。

zprofでプロファイリング

zshの初回起動が遅い。PC起動後の初回起動はなんと25秒。それ以外の再起動だと0.15秒程度。「zsh 遅い」とかで検索するとzprofというワードが出てくる。zprofはzshをプロファイリングしてくれる。.zshrc の先頭に zmodload zsh/zprof 、末尾に zprof を追加して起動させてプロファイリングを行った。

num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)    1       31551.85 31551.85   99.53%  31442.63 31442.63   99.18%  (anon) [~/.oh-my-zsh/tools/check_for_upgrade.sh:126]
 2)    1         109.22   109.22    0.34%    109.22   109.22    0.34%  is_update_available
 3)    2          99.74    49.87    0.31%     99.74    49.87    0.31%  compaudit
...

正直見方はわからないが、明らかに実行時間がかかっている項目がある。どうやら oh-my-zsh まわりの処理のようだ。

.oh-my-zsh/tools/check_for_upgrade.sh

コード*1を見ると DISABLE_AUTO_UPDATE をtrueにしておけば起動毎に実行されなくなるみたいなので .zshrc に書いた。再起動したところ、PC起動後の初回起動は変わらず25秒前後だったが、それ以外の再起動は0.10秒程度だった。ちょっと改善されて嬉しいね。初回起動が遅い問題はこれからも探っていく。

参考