Profiling zsh setup with zprof.

#zsh #ohmyzsh

Leveraging frameworks like oh-my-zsh can enrich your shell experience, but overloading it with plugins might slow things down. Keeping your .zshrc file lean can significantly enhance startup times and overall performance. Profiling your shell is a good start to figuring out what is slowing it down.

Zprof is a utility that comes packaged with zsh, which you can use to profile your zsh script.
Add the following to the top of your .zshrc file to load zprof:

if [[ -n "$ZSH_DEBUGRC" ]]; then
  zmodload zsh/zprof
fi

And this at the bottom:

if [[ -n "$ZSH_DEBUGRC" ]]; then
  zprof
fi

To profile your .zshrc script and print a summary of all the commands run during your shell startup and the time it takes to execute them run this:

time ZSH_DEBUGRC=1 zsh -i -c exit

Recommendation would be to put this in an alias to make everything more comfortable.
Running the command will print something like this:

This approach will reveal which commands are the most time-consuming to load, setting you on the path to efficient customization. Happy profiling!

March 22, 2024 Victor Cobos