ZSH 速度太慢原因排查
1. 检查速度
平时的启动: hyperfine "zsh -i -c exit"
不启动脚本: hyperfine "zsh --no-rcs -i -c exit"
2. 排查原因
在 .zshrc
开头加入 zmodload zsh/zprof
,末尾加入 zprof
,运行 zsh
$ zsh
num calls time self name
-----------------------------------------------------------------------------------
1) 1 305.98 305.98 50.52% 305.95 305.95 50.51% nvm_die_on_prefix
2) 1 463.42 463.42 76.51% 82.96 82.96 13.70% nvm
3) 1 79.69 79.69 13.16% 79.53 79.53 13.13% __kubectl_bash_source
4) 1 74.43 74.43 12.29% 74.43 74.43 12.29% nvm_ensure_version_installed
5) 3 30.63 10.21 5.06% 30.63 10.21 5.06% compaudit
...
发现是因为加载了
nvm
的原因,平时也用不到 nvm
,所以我把 .zshrc
加载 nvm
的语句都注释掉了2021/09/29 更新
加入
alias load_nvm="source /usr/share/nvm/init-nvm.sh
, 需要时执行命令. 在我 ArchLinux 上是可以的, 但是在别的系统可能会有问题, 具体看 .zshrc
中如何导入 nvm
就行了.
[1] https://stevenvanbael.com/profiling-zsh-startup