iTerm / Terminal OS X lento na abertura de um shell

14

Estou usando o OS X 10.8 e ultimamente estou percebendo que o iTerm2 às vezes pode ser bastante lento ao abrir um novo shell. Demora cerca de 5 segundos antes que eu possa fazer alguma coisa. Pode não parecer muito, mas eu trabalho muito no shell para que fique bastante irritante.

Estou usando o ZSH com oh-my-zsh.

Tentei o Terminal, desinstalando o oh-my-zsh, limpando tudo o que era desnecessário dos arquivos de inicialização (.zshenv, .zlogin, .zprofile, .zshrc, .zlogout) e limpando os arquivos ASL em / var / log / asl e embora diminua um pouco (como 0,20s), não há nada que reduza bastante instantâneo ou mesmo abaixo de 3,0s.

Alguém tem outra idéia?

Dimitri
fonte
Perguntas relacionadas: 31403 , 41743 , 236953 , 444614
Lri
Você já tentou alterar o comando para novas conchas para algo assim login -pfq username /usr/local/bin/zsh?
Lri
@ lauri-ranta: Tentei de tudo nesses outros tópicos, mas sem sucesso. Tentar "login -pfq nome de usuário / usr / local / bin / zsh" também não fez nada.
Dimitri
Para verificar se está relacionado ao shell ou ao iTerm2: quanto tempo leva para iniciar um novo shell? (entrando zshem uma janela do terminal já aberta)?
Matteo
Adicione a .zshrc:[ $((RANDOM & 1)) -eq 0 ] && do not sleep 5
theoden8

Respostas:

18

Limpar login /var/log/asl, ou seja,

rm -rf /var/log/asl/*.asl
neo
fonte
11
Você poderia explicar por que o iterm está sendo retardado por esta pasta de log e há algo que pode ser feito para realmente impedir que esse problema aconteça?
David
2
@ David, você pode verificar este link para entender o motivo pelo qual as novas guias são lentas. apple.stackexchange.com/a/71930/89583
Archan Mishra
Uau --- muito obrigado --- pelo iterm2, parece que a resposta é usar a sugestão na parte inferior da página (/ bin / bash -il) do cara que recebeu o voto negativo para -1. Funciona bem.
David
12

Por comentário de Archan Mishra acima, para o iTerm 2, a resposta é configurar um comando de terminal personalizado /bin/bash -il que ignora a pesquisa completa dos logs ASL do sistema. iterm2 abre instantaneamente agora.

David
fonte
1

Estas são as etapas que eu usei para otimizar a velocidade de inicialização do meu shell e reduzir o atraso na execução de comandos -

  1. Se você estiver usando o powerlevel9k, recomendarei mudar imediatamente para o powerlevel10k .

Powerlevel10k é um tema para o Zsh. Ele enfatiza velocidade, flexibilidade e experiência imediata. É uma reimplementação do popular tema Powerlevel9k zsh. Parece exatamente o mesmo, com a mesma configuração, mas torna o prompt 10 a 100 vezes mais rápido. É otimizado em todos os níveis da pilha, até o uso de uma versão corrigida do libgit2 que pode digitalizar um repo 4 vezes mais rápido que o original. Ele pode remover o atraso de inicialização do Zsh, mesmo que não seja causado por um tema com recursos como o prompt instantâneo.

  1. Vá para Preferências -> Perfis -> Geral -> Comando e selecione a opção Comando em vez de Login Shell e cole o comando abaixo na caixa próxima a ela.
login -pfq username /usr/local/bin/zsh -il

Você não veria o último horário de login impresso ao iniciar uma nova guia agora. Se o zsh não estiver presente no local / usr / local / bin / zsh, será necessário instalar o zsh usando o brew. O zsh padrão fornecido pelo mac está em / usr / bin / zsh e pode estar usando uma versão anterior como 5.2, que pode causar velocidade lenta quando usado com o iTerm ou oh-my-zsh.

  1. Para agilizar a colagem no zsh, execute o comando abaixo no terminal.
mkdir -p $ZSH_CUSTOM/lib && touch $ZSH_CUSTOM/lib/misc.zsh
  1. O ponto 2 já deve cuidar dos tempos de login lentos. Mas apenas por segurança, execute o comando abaixo
mkdir -p .hushlogin
  1. Existem vários plugins que você pode estar usando, que são lentos e criam lag. Você precisa apontar esses plugins e removê-los. Para isso, você precisará de perfis zsh. Siga esse link para mais detalhes -

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

Shubham Jain
fonte
Bem-vindo ao Super Usuário! Não publique a mesma resposta em várias perguntas. Se a mesma informação realmente responder a ambas as perguntas, uma pergunta (geralmente a mais recente) deve ser fechada como duplicata da outra. Você pode indicar isso votando para fechá-lo como duplicado ou, se você não tiver reputação suficiente para isso, levante uma bandeira para indicar que é uma duplicata. Caso contrário, adapte sua resposta a essa pergunta e não cole a mesma em vários lugares.
DavidPostill