почему оболочка (новый терминал, новые панели/окна tmux) загружается медленно?

почему оболочка (новый терминал, новые панели/окна tmux) загружается медленно?

Когда я открываю новый терминал, загрузка оболочки занимает пару секунд, когда я открываю новую панель или окно в 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/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/alec/code/bin

Раньше я задавался вопросом, не будет ли проблематично иметь репозиторий git на этом пути. Последнее местоположение на этом пути ~/code/binбыло , ~/binи там была .gitбаза данных внутри. Теперь каталог .gitнаходится в ~/code(что, как мне кажется, не позволит оболочке просматривать его на предмет исполняемых файлов), но это не дало никаких улучшений производительности.

Я не знаю никаких других возможностей для догадок и проверок или каких-либо логических процедур устранения неполадок, которые можно было бы выполнить/исследовать.

Какие-либо предложения?

решение1

Добавьте: set -xвверху и set +xвнизу, ~.zshrcчтобы получить больше информации о том, что выполняется во время запуска оболочки. (Полезно держать этот файл открытым в отдельном окне/терминале/редакторе во время всего процесса отладки)

Может быть трудно понять, что правильно, а что проблемно среди всего этого вывода... но если вы заметили что-то знакомое, это хорошее место для начала. В моем случае было много строк о nvm, "менеджере версий узлов". Отключение nvmстрок в моем .zshrcфайле устраняет две секунды при запуске оболочки!

Для использования nvmбез нагрузки на производительность,https://www.ioannispoulakas.com/2020/02/22/how-to-speed-up-shell-load-while-using-nvm/предлагает несколько возможных решений.

Связанный контент