解决zsh启动慢

简介

zsh启动慢已经不是一天两天了,最近真的受不了了,所以准备解决下这个问题

操作

首先分析下哪里加载这么慢

编辑zshrc文件

vim ~/.zshrc

首行加入

zmodload zsh/zprof

然后输入zsh,重新加载下zsh

之后输入

zprof

就会出现下面一大段

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)    1        1073.31  1073.31   52.32%   1073.11  1073.11   52.31%  nvm_die_on_prefix
 2)    2        1440.46   720.23   70.21%    229.65   114.83   11.19%  nvm
 3)    1         198.55   198.55    9.68%    198.55   198.55    9.68%  _pyenv_virtualenv_hook
 4)    1        1631.54  1631.54   79.53%    191.08   191.08    9.31%  nvm_auto
 5)    1         135.78   135.78    6.62%    122.46   122.46    5.97%  nvm_ensure_version_installed
 6)    1          67.35    67.35    3.28%     67.35    67.35    3.28%  handle_completion_insecurities
 7)    2         116.27    58.13    5.67%     58.88    29.44    2.87%  compinit
 8)    2          57.39    28.69    2.80%     57.39    28.69    2.80%  compaudit
 9)    1          16.88    16.88    0.82%     16.88    16.88    0.82%  (anon)
10)    1          13.32    13.32    0.65%     13.32    13.32    0.65%  nvm_is_version_installed
11)    1           9.71     9.71    0.47%      9.71     9.71    0.47%  nvm_supports_source_options
12)    3           2.66     0.89    0.13%      2.66     0.89    0.13%  up-line-or-beginning-search
13)    2           2.03     1.02    0.10%      2.03     1.02    0.10%  add-zsh-hook
14)    1           2.03     2.03    0.10%      2.03     2.03    0.10%  colors
15)    2           1.92     0.96    0.09%      1.92     0.96    0.09%  nvm_has
16)   12           1.58     0.13    0.08%      1.58     0.13    0.08%  compdef
17)    3           1.36     0.45    0.07%      1.36     0.45    0.07%  is-at-least
18)    2           0.36     0.18    0.02%      0.36     0.18    0.02%  title
19)    1           0.55     0.55    0.03%      0.30     0.30    0.01%  omz_termsupport_preexec
20)    1           0.39     0.39    0.02%      0.20     0.20    0.01%  complete
21)    1        1641.38  1641.38   80.01%      0.12     0.12    0.01%  nvm_process_parameters
22)    2           0.12     0.06    0.01%      0.12     0.06    0.01%  is_plugin
23)    1           0.11     0.11    0.01%      0.11     0.11    0.01%  zle-line-init
24)    1           0.11     0.11    0.01%      0.11     0.11    0.01%  zle-line-finish
25)    2           0.09     0.04    0.00%      0.09     0.04    0.00%  bashcompinit
26)    1           0.09     0.09    0.00%      0.09     0.09    0.00%  detect-clipboard
27)    2           0.05     0.03    0.00%      0.05     0.03    0.00%  env_default
28)    1           0.14     0.14    0.01%      0.03     0.03    0.00%  omz_termsupport_precmd
29)    1           0.02     0.02    0.00%      0.02     0.02    0.00%  nvm_is_zsh

可以发现nvm和_pyenv_virtualenv_hook的启动占用了很大一部分时间,所以在zshrc里面注释掉,重启zsh发现快了一半以上

欢迎关注我的博客 www.bboy.app

Have Fun