Skip to content

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

Comments