iTerm / Terminal OS X медленно открывает оболочку

14

Я использую OS X 10.8, и в последнее время я замечаю, что iTerm2 иногда может быть довольно медленным с открытием новой оболочки. Требуется около 5 секунд, прежде чем я могу что-то сделать. Может показаться немного, но я много работаю в оболочке, поэтому она может стать довольно раздражающей.

Я использую ZSH с ой-мой-zsh.

Я попробовал Терминал, удалив oh-my-zsh, очистив все ненужное от файлов запуска (.zshenv, .zlogin, .zprofile, .zshrc, .zlogout) и очистив ASL-файлы в / var / log / asl и хотя он немного снижается (например, 0,20 с), нет ничего, что могло бы привести его к мгновенному или даже ниже 3,0 с.

У кого-нибудь случается другая идея?

Dimitri
источник
Вопросы по теме: 31403 , 41743 , 236953 , 444614
Lri
Вы пытались изменить команду для новых оболочек на что-то вроде login -pfq username /usr/local/bin/zsh?
Lri
@ lauri-ranta: пробовал все в этих других темах, но безрезультатно. Попытка "login -pfq username / usr / local / bin / zsh" также ничего не дала.
Дмитрий
Чтобы узнать, связано ли это с shell или iTerm2: сколько времени потребуется, чтобы запустить новую оболочку? (введя zshв уже открытое окно терминала)?
Маттео
добавить к .zshrc:[ $((RANDOM & 1)) -eq 0 ] && do not sleep 5
theoden8

Ответы:

18

Очистить логин /var/log/asl, т.е.

rm -rf /var/log/asl/*.asl
нео
источник
1
Не могли бы вы объяснить, ПОЧЕМУ iterm замедляется этой папкой журналов и можно ли что-то сделать, чтобы на самом деле предотвратить возникновение этой проблемы?
Дэвид
2
@ Давид, вы можете проверить эту ссылку, чтобы понять причину, почему новые вкладки работают медленно. apple.stackexchange.com/a/71930/89583
Арчан Мишра
Ух ты, спасибо большое за iterm2, похоже, что ответом будет предложение в нижней части этой страницы (/ bin / bash -il) от парня, который проголосовал за -1. Работает отлично.
Дэвид
12

Согласно комментарию от Archan Mishra выше, для iTerm 2 ответ заключается в том, чтобы настроить пользовательскую команду терминала, /bin/bash -il которая обходит поиск в системных журналах ASL полностью. Теперь iterm2 открывается мгновенно.

Дэвид
источник
1

Это шаги, которые я использовал, чтобы оптимизировать скорость запуска моей оболочки и уменьшить отставание при выполнении команд -

  1. Если вы используете powerlevel9k, то я рекомендую немедленно перейти на powerlevel10k .

Powerlevel10k - это тема для Zsh. Он подчеркивает скорость, гибкость и готовность к работе. Это переопределение популярной темы Powerlevel9k Zsh. Он выглядит точно так же при той же конфигурации, но выводит подсказку в 10-100 раз быстрее. Он оптимизирован на каждом уровне стека, вплоть до использования исправленной версии libgit2, которая может сканировать репо в 4 раза быстрее, чем оригинал. Он может удалить задержку запуска Zsh, даже если он не вызван темой с такими функциями, как Instant Prompt.

  1. Перейдите в «Настройки» -> «Профили» -> «Основные» -> «Команда» и выберите опцию «Команда» вместо «Оболочка входа» и вставьте приведенную ниже команду в поле рядом с ней.
login -pfq username /usr/local/bin/zsh -il

Вы не увидите время последнего входа в систему при запуске новой вкладки. Если zsh отсутствует в каталоге / usr / local / bin / zsh, вам необходимо установить zsh с помощью brew. Zsh по умолчанию, предоставленный mac, находится в / usr / bin / zsh и может использовать более старую версию, такую ​​как 5.2, которая может вызвать медленную скорость при использовании с iTerm или oh-my-zsh.

  1. Для быстрого вставки в zsh выполните следующую команду в терминале.
mkdir -p $ZSH_CUSTOM/lib && touch $ZSH_CUSTOM/lib/misc.zsh
  1. Пункт 2 уже должен позаботиться о медленном времени входа в систему. Но для безопасности выполните следующую команду
mkdir -p .hushlogin
  1. Возможно, вы используете тонны плагинов, которые работают медленно и создают лаги. Вам нужно указать эти плагины и удалить их. Для этого вам понадобится Zsh-профилирование. Перейдите по этой ссылке для более подробной информации -

https://stevenvanbael.com/profiling-zsh-startup

Шубхам Джайн
источник
Добро пожаловать в Супер пользователя! Пожалуйста, не размещайте один и тот же ответ на несколько вопросов. Если одна и та же информация действительно отвечает на оба вопроса, то один вопрос (обычно более новый) следует закрыть как дубликат другого. Вы можете указать это путем голосования, чтобы закрыть его как дубликат или, если у вас недостаточно репутации для этого, поднять флаг, чтобы указать, что это дубликат. В противном случае настройте свой ответ на этот вопрос, а не просто вставляйте один и тот же ответ в нескольких местах.
DavidPostill