为什么 shell(新终端、新 tmux 窗格/窗口)加载缓慢?

为什么 shell(新终端、新 tmux 窗格/窗口)加载缓慢?

当我打开一个新终端时,加载 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/提出了一些可能的解决方案。

相关内容