Profiling zsh and fixing my slow shell

Ellie Huxtable

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

원문은 Ellie Huxtable님이 에 게재했습니다. 이 블로그 구독하기

한동안 제 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를 써볼까 고민 중인데, 아직 어떤 게 나에게 가장 잘 맞을지 알아볼 여유가 없었다.

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

댓글