Когда я открываю новый терминал, загрузка оболочки занимает пару секунд, когда я открываю новую панель или окно в 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/предлагает несколько возможных решений.