Skip to content

Instantly share code, notes, and snippets.

@elalemanyo
Last active April 23, 2024 18:25
Show Gist options
  • Star 33 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save elalemanyo/cb3395af64ac23df2e0c3ded8bd63b2f to your computer and use it in GitHub Desktop.
Save elalemanyo/cb3395af64ac23df2e0c3ded8bd63b2f to your computer and use it in GitHub Desktop.
Debug zsh startup time

Debug zsh startup time

  1. Inject profiling code

    At the beginning of your .zshrc add following: zmodload zsh/zprof

    and at the end add: zprof

    This will load zprof mod and display what your shell was doing durung your initialization.

  2. Measure startup time

    time zsh -i -c exit

@sharunkumar
Copy link

Thanks for guide! Based on this, I would also like to add my approach where I don't have to edit the rc file manually each time to check:

if [ -n "${ZSH_DEBUGRC+1}" ]; then
    zmodload zsh/zprof
fi

# rest of .zshrc script

if [ -n "${ZSH_DEBUGRC+1}" ]; then
    zprof
fi

then I just run:

time ZSH_DEBUGRC=1 zsh -i -c exit

@elalemanyo
Copy link
Author

@sharunkumar Thanks! Great idea. Check this to see how I implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment