a mudança do diretório é muito lenta

2

de tempos em tempos, a mudança para um diretório (por meio do terminal) inicia o processo git , que leva 100% de tempo de CPU e até 5-6 segundos, durante o qual meu console é absolutamente indiferente.

Isso não acontece toda vez que navego para esse diretório, mas isso acontece várias vezes durante o dia.

Após 5-7 segundos, o processo git desaparece e eu entro no diretório

Alguma idéia?

meu ~ .zshrc é aqui

➜  Config git:(develop) uname -a         
Linux dmitry 4.13.4-200.fc26.x86_64 #1 SMP Thu Sep 28 20:46:39 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
➜  Config git:(develop) zsh --version    
zsh 5.3.1 (x86_64-redhat-linux-gnu)
➜  Config git:(develop) 
➜  Config git:(develop) bash --version
GNU bash, version 4.4.12(1)-release (x86_64-redhat-linux-gnu)
    
por DmitrySemenov 10.10.2017 / 01:04

1 resposta

1

Você provavelmente precisará depurá-lo por conta própria, pois o seu ~ / .zshrc é muito específico e usa muitas extensões de terceiros.

Algumas ferramentas de depuração que ajudarão você aqui:

  • PS4='+[%D{%T.%.}] %N:%i> ' zsh -x

    e tente reproduzir o problema.

    Isso registrará todos os comandos executados pelo zsh com algum tempo para que você possa identificar qual deles leva muito tempo e o que é chamado.

    Você pode querer executar isso em script (veja também sua opção -t ) ou com 2> file.log , pois a saída provavelmente será muito copiosa.

  • strace -tte execve -s 999 -o strace.log zsh

    Isso rastreia todas as execuções de comando novamente com o tempo.

Você também pode instrumentar chamadas para git apenas com algo como:

git() {
  local PS4='[%D{%T.%.}] %N:%i:'
  print -u2 -f '-> %s (%s)\n' ${funcstack:^funcfiletrace}
  set -o localoptions -o xtrace
  command git "$@"
}
    
por 18.12.2017 / 12:17