当我打开一个新终端时,加载 shell 需要几秒钟,当我在 tmux 中打开一个新窗格或窗口时,甚至可能需要更长的时间。延迟大约3秒。
我将 zsh 与 oh-my-zsh 和 ohmyzsh 插件一起使用:git、vi-mode、history-substring-search。
我的路径看起来像:
/home/alec/.nvm/versions/node/v14.6.0/bin:/home/alec/.composer/vendor/bin:/home/alec/.local/bin:/usr/local/sbin:/usr/本地/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/alec/code/bin
之前我想知道路径上有 git repo 是否会出现问题。该路径中的最终位置~/code/bin
曾经是并且其中~/bin
有数据库。.git
现在.git
目录已经存在~/code
(在我看来,这会阻止 shell 查找可执行文件),但这并没有带来任何性能改进。
我不知道任何其他猜测和检查的可能性,也不知道任何要执行/调查的逻辑故障排除程序。
有什么建议么?
答案1
添加:set -x
到顶部和set +x
底部~.zshrc
以获得有关 shell 启动期间正在运行的内容的大量输出。 (在整个调试过程中保持该文件在单独的窗口/终端/编辑器中打开是有帮助的)
可能很难知道所有输出中什么是正确的,什么是有问题的……但是如果您注意到您认识的某些内容,那么这是一个很好的起点。就我而言,有很多行关于nvm
“节点版本管理器”。禁用nvm
我的文件中的行.zshrc
可以缩短 shell 启动的两秒时间!
nvm
要在没有性能负担的情况下使用,https://www.ioannispoulakas.com/2020/02/22/how-to-speed-up-shell-load-while-using-nvm/提出了一些可能的解决方案。