更改目录非常慢

更改目录非常慢

不时地更改目录(通过终端)启动git过程需要100%CPU 时间长达 5-6 秒,在此期间我的控制台完全没有响应。

当我导航到该目录时,并非每次都会发生这种情况,但一天中会发生几次。

5-7秒后git进程消失了,我进入目录

有任何想法吗?

我的~.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选项)或 with下运行它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 "$@"
}

相关内容