저는 prezto를 사용하고 있는데 zsh
새 셸을 시작하는 것이 약간 느리다는 것을 알았습니다. (참고로 저는 구성을 다른 느린 시스템으로 이동하기 전에 빠른 시스템에서 최적화하려고 합니다.)
벤치마크 time zsh -i -c exit
:
- 0.046
bash
:. - 0.080:
zsh
프레즈토가 없습니다. - 0.092:
zsh
prezto가 있지만 모듈이 로드되지 않았습니다. - 0.138:
zsh
prezto를 사용하고completion
. - 0.308:
zsh
prezto를 사용하고 모든 "기본" 모듈을 로드합니다.
첫째, 로딩 zsh
보다 bash
74% 느 립니다. 73%의 추가 속도 저하(prezto 및 완료 로딩을 제외한 모든 모듈 사용)를 수용할 수 있지만 285% 속도 저하(모든 모듈 사용)는 약간 너무 높습니다.
이러한 완성 중 일부는 유용하므로그 중 일부를 선택적으로 비활성화하는 방법이 있습니까?나는 이것에 대해 들어본 적이 있다다른 곳에서, 이것이 단지 탭 완료 속도를 높이기 위한 것인지, 아니면 쉘 로딩 속도를 높이기 위한 것인지는 확실하지 않습니다. (선택적으로 완료를 비활성화할 수 있다면 속도 저하의 원인을 분석하고 파악할 수 있습니다.)
답변1
prezto가 /usr/lib/prezto/modules/completion
. 모든 것이 활성화된 상태에서 콘텐츠를 제거했는데 /usr/lib/prezto/modules/completion/init.zsh
, 이는 다시 두 번째로 빠른 로딩 시간을 제공했습니다. 그런 다음 해당 파일에서 체계적으로 줄을 삭제하기 시작했고 속도 저하를 일으키는 한 줄을 격리할 수 있었습니다.
unsetopt CASE_GLOB
compinit
내 특별한 경우에는 prezto가 ~/.zshrc
꺼진 상태로 실행 되어 속도가 느려지고 compinit
로딩 시간이 3배로 늘어났다는 점에 유의하세요.