Posso desabilitar seletivamente as conclusões do zsh?

1

Estou usando o prezto com zsh e acho um pouco lento lançar um novo shell. (N.B estou tentando otimizar em um sistema fast-ish, antes de mover minha configuração para outros sistemas mais lentos).

Comparativo de mercado com time zsh -i -c exit :

  • 0,046: bash .
  • 0,080: zsh sem prezto.
  • 0,092: zsh com prezto, mas nenhum módulo carregado.
  • 0.138: zsh com prezto e todos os módulos "padrão" carregados, exceto completion .
  • 0.308: zsh com prezto e todos os módulos "padrão" carregados.

Em primeiro lugar, zsh é 74% mais lento que bash para carregar. Eu poderia aceitar a desaceleração adicional de 73% (com prezto e todos os módulos, exceto a conclusão carregada), mas a desaceleração de 285% (com todos os módulos) é um pouco demais.

Algumas dessas conclusões são úteis, então existe uma maneira de desativar seletivamente algumas delas? Já ouvi falar dessa em outro lugar , embora eu não tenha certeza se isso é apenas para melhorar a velocidade de conclusão de tabulação ou o carregamento do shell também. (Se eu pudesse desativar seletivamente a conclusão, isso me permitiria analisar e descobrir o que estava causando a lentidão.)

    
por Sparhawk 22.04.2016 / 03:37

1 resposta

2

Parece que o prezto está carregando o módulo em /usr/lib/prezto/modules/completion . Com tudo ativado, excluí o conteúdo de /usr/lib/prezto/modules/completion/init.zsh , o que me deu o segundo maior tempo de carregamento novamente. Comecei então a apagar sistematicamente as linhas desse arquivo e poderia isolar uma única linha causando lentidão.

unsetopt CASE_GLOB

N.B. no meu caso específico, a lentidão foi causada por uma duplicata compinit no meu ~/.zshrc . Presumivelmente, o prezto também estava executando compinit com o case off, resultando em um aumento de duas vezes no tempo de carregamento.

    
por 22.04.2016 / 04:08