![내 Git 저장소 내부의 Zsh는 매우 느립니다.](https://rvso.com/image/1330216/%EB%82%B4%20Git%20%EC%A0%80%EC%9E%A5%EC%86%8C%20%EB%82%B4%EB%B6%80%EC%9D%98%20Zsh%EB%8A%94%20%EB%A7%A4%EC%9A%B0%20%EB%8A%90%EB%A6%BD%EB%8B%88%EB%8B%A4..png)
내 Zsh는 특정 Git 저장소 내에서 매우 느립니다. "zsh git Slow"를 Google에 검색하면 Git에 대한 많은 결과를 얻습니다.자동 완성느리지만 자동 완성이 반드시 내 문제는 아닙니다. 그것은모든 것.
모든 플러그인을 제거해 보았지만 이상하게도 새 셸을 열었을 때 아무 작업도 수행되지 않았습니다. Zsh는 여전히 내 Git 저장소 내에서 Git 작업을 수행합니다.
이 스니펫을 찾았습니다.이 페이지:
function git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
}
이로 인해 모든 것이 다시 빨라졌지만 다음과 같은 메시지도 표시되었습니다.
➜ snip git:(master
누락된 오른쪽 괄호에 유의하세요. 그건 좀 형편없어요. 게다가 이 모든 일은 내가 할 필요가 없는 해킹처럼 보입니다.
유망해 보이는 SU 질문도 있지만 허용되는 답변의 링크가 작동하지 않습니다.
Git 저장소 내에서 Zsh가 느려지지 않도록 하려면 어떻게 해야 합니까?
답변1
다음 명령을 실행하여 git status 기능을 완전히 비활성화할 수 있습니다.
git config --global oh-my-zsh.hide-status 1
또는 다음 줄을 ~/.zshrc
.
DISABLE_UNTRACKED_FILES_DIRTY="true"
답변2
느린 동안 호출되는 셸 명령을 추적하려면 다음을 실행 set -x
하거나 시작 파일에 추가할 수 있습니다. 자동 완성을 담당하는 명령을 포함하여 모든 명령이 표시됩니다.
git
일부 명령이 느리다고 생각되면 다음과 같은 추가 변수를 정의할 수 있습니다.
exports GIT_TRACE=1
더 많은 예를 보려면 다음을 참조하세요.git/git-shell 관련 문제를 어떻게 디버깅할 수 있나요?
답변3
플러그인으로 제거한 zsh-autosuggestions
후 더 빨라졌습니다. 내 경우에는 git
.
답변4
를 사용하여 속도 저하의 원인을 확인해 볼 수 있습니다 zprof
. 이것을 귀하의 ~/.zshrc
(또는 동등한 것)에 추가하십시오:
zmodload zsh/zprof
그런 다음 각 명령 다음에 실행하여 zprof
요약을 얻습니다. 제 경우에는 속도 저하의 원인이 전혀 관련 없는 플러그인이었습니다.