ディレクトリの変更が非常に遅いです。

ディレクトリの変更が非常に遅いです。

時々ディレクトリを変更することから始めます(ターミナル経由)プロセス要件100%CPU時間が5〜6秒かかり、その間コンソールが完全に応答しなくなります。

ディレクトリに移動するたびにこれは発生しませんが、1日に数回発生します。

5~7秒後プロセスが消えてディレクトリに入りました。

どんなアイデアがありますか?

私のもの~.zshrcはいここ

➜  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)

答え1

~/.zshrc は非常に具体的で、多くのサードパーティの拡張機能を使用しているため、直接デバッグする必要があるかもしれません。

いくつかの役に立つデバッグツールは次のとおりです。

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

    問題を再現してみてください。

    これにより、特定の期間にzshが実行するすべてのコマンドが記録されるため、どのコマンドが時間がかかり、それを呼び出したコマンドが何であるかを識別できます。

    出力は非常に豊富なので、以下で実行するかscript(該当するオプションを参照)、一緒に-t実行したい場合があります。2> file.log

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

    これは、すべてのコマンドの実行を再追跡し、時間を測定します。

git以下を使用して通話を検出することもできます。

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

関連情報