디렉토리 변경이 매우 느립니다.

디렉토리 변경이 매우 느립니다.

때때로 디렉토리를 변경하여 시작하십시오 (터미널을 통해)자식프로세스 요구 사항100%CPU 시간이 5~6초 정도 걸리며, 그 동안 콘솔이 완전히 응답하지 않게 됩니다.

디렉토리로 이동할 때마다 이런 일이 발생하는 것은 아니지만 하루에 몇 번씩 발생합니다.

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 "$@"
}

관련 정보