这个是困扰了我好几年的问题。
使用 time zsh -i -c exit
可以看到 zsh 的启动时间。
本来都已经习惯了,今天突发奇想研究了一下,发现是 nvm 拖慢了我的 zsh。
解决方案
搜了一下 nvm 的 issue,找到了 解决方案 。
- 编辑原先的
.zshrc
,把 下方 nvm 启动的代码删除。
1 2 3
| export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
|
- 添加下方代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| if [[ ! -a ~/.zsh-async ]]; then git clone git@github.com:mafredri/zsh-async.git ~/.zsh-async fi source ~/.zsh-async/async.zsh
export NVM_DIR="$HOME/.nvm" function load_nvm() { [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" }
# Initialize worker async_start_worker nvm_worker -n async_register_callback nvm_worker load_nvm async_job nvm_worker sleep 0.1
|
效果
1 2
| time zsh -i -c exit zsh -i -c exit 0.07s user 0.09s system 75% cpu 0.215 total
|