nvm slow start

# zsh 시작이 오래 걸리는 문제가 있다.
# zprof(bulitin) 모듈을 추가해 zsh 시작을 프로파일링 해보자.
# ~/.zshrc 첫번째 라인
zmodload zsh/zprof
# ~/.zshrc 마지막 라인
zprof

# 이제 zsh 를 시작하면 다음과 같이 처리시간이 큰 커맨드를 확인할 수 있다. 
zsh
num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)    1        1413.91  1413.91   93.77%    532.48   532.48   35.31%  nvm_auto
 2)    2         881.44   440.72   58.45%    468.15   234.08   31.05%  nvm
 3)    1         349.74   349.74   23.19%    309.31   309.31   20.51%  nvm_ensure_version_installed
 4)    1          63.34    63.34    4.20%     49.80    49.80    3.30%  nvm_die_on_prefix
 5)    5          92.76    18.55    6.15%     41.40     8.28    2.75%  pmodload
 6)    1          40.43    40.43    2.68%     40.43    40.43    2.68%  nvm_is_version_installed
 7)    1          15.33    15.33    1.02%     15.33    15.33    1.02%  compinit
 8)    1          13.19    13.19    0.87%     13.19    13.19    0.87%  nvm_grep
 9)    1           9.20     9.20    0.61%      9.00     9.00    0.60%  _zsh_highlight_load_highlighters
10)    2           7.27     3.63    0.48%      7.27     3.63    0.48%  promptinit
11)    2          11.93     5.97    0.79%      6.86     3.43    0.45%  prompt_sorin_ysoftman_setup

# nvm.sh 의 nvm_auto(), nvm(), nvm_ensure_versin_installed() 이 오래걸린다는걸 알 수 있다.
# --no-use 를 옵션을 사용해 로딩하면 nvm 명령은 사용할 수 있지만 새로운 쉘 시작시 항상 system node 가 되어
# 특정 node 버전이 필요한 경우 nvm use v{버전} 으로 변경해야 하는 수고가 있다.
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" --no-use

# 관련해서 이슈가 있고 nvm lazy 로딩등을 얘기하는데 아직 정식으로 해결되진 않았다.

comments:

댓글 쓰기