Profiling zsh and fixing my slow shell

Ellie Huxtable

zsh 프로파일링과 느린 셸 고치기

내 zsh는 한동안 시작이 조금 느렸다. 심각하게 거슬릴 정도는 아니었지만, 언젠가는 손봐야지 하며 계속 미뤄 온 문제였다. Thorsten Ball이 이 주제로 훌륭한 글을 쓴 적이 있는데 여기에서 볼 수 있다. 어쩌면 너무 오랫동안 발에 모래주머니를 차고 달려온 셈인지도 모른다!

최근에는 atuin init 명령어를 만지작거리고 있다. 이 명령어는 셸 시작 시 실행된다. 최대한 빠르게 유지해서 누구에게도 느린 셸을 안겨주지 않고 싶다.

내가 한 일은 다음과 같다:

  1. .zshrc 맨 위에 zmodload zsh/zprof를 추가하기
  2. 같은 파일 맨 아래에 zprof를 추가하기

새 셸을 열면 zsh가 어디서 시간을 쓰고 있는지 보여주는 깔끔한 표가 나타난다.

범인이 nvm이라는 건 너무나 분명하다! 조금 검색해 보니 이제야 이걸 깨달은 게 나뿐만은 아닌 것 같지만, 아무래도 내가 가장 늦게 알아차린 축에 속하는 것 같다. 이런.

고쳐 보기

nvm을 꽤 자주 쓰는 편이라 제대로 고쳐 보기로 했다.

지연 로딩

zsh-lazyload를 사용하면 명령어를 지연 로딩할 수 있다! 이렇게 하면 실제로 nvm을 사용할 때만 느려지는 비용을 치르면 된다. 나쁘지 않다.

리드미대로 플러그인을 설치하고(나는 zplug를 사용했다), 그 다음

lazyload nvm -- 'source ~/.nvm/nvm.sh'

를 내 .zshrc에 추가하면 된다. 끝!

대체재

요즘은 다른 선택지도 꽤 많다. asdfmise를 써 볼까 고민 중이지만, 아직 뭐가 내게 가장 잘 맞을지 알아볼 시간을 내지 못했다.

원문은 Ellie Huxtable님이 에 게재했습니다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.