[post] Profiling ZSH
This commit is contained in:
parent
3b2dec2084
commit
ba99fa8f98
1 changed files with 32 additions and 0 deletions
32
content/blog/2022/01/profiling-zsh/index.md
Normal file
32
content/blog/2022/01/profiling-zsh/index.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: "Profiling ZSH"
|
||||
date: 2022-01-23T11:35:38-08:00
|
||||
draft: false
|
||||
tags: ["Tech", "ZSH"]
|
||||
---
|
||||
|
||||
I've been hacking on my [dotfiles][dotfiles] a lot lately. One of the things
|
||||
that has bothered me about my shell setup is how long it takes zsh to start up.
|
||||
I did some research and found this [blog post][debug-zsh] from someone who
|
||||
undertook the same project.
|
||||
|
||||
TIL, ZSH has a profiler built in. You can start it by calling the following.
|
||||
|
||||
```zsh
|
||||
zmodload zsh/zprof
|
||||
```
|
||||
|
||||
Then, once you're done, you call `zprof` to get a report that tells you where
|
||||
ZSH is spending most of its time. I put the line above at the top of my
|
||||
`.zshenv` and then called `zprof` at the end of my `.zshrc`.
|
||||
|
||||
Over the years, my shell init has grown organically in various ways as needs
|
||||
arise. I add things, hack around to make things work, and don't generally pay
|
||||
attention to the overall structure of it. I've also frankly never spent a lot of
|
||||
time to learn the quirks of how ZSH behaves, and the most efficient ways of
|
||||
doing things. So, when I started this process, my init was taking close to a
|
||||
second. By the end, it was down to about 100 ms. Not bad for a couple hours of
|
||||
work. :)
|
||||
|
||||
[dotfiles]: https://github.com/erynofwales/dotfiles
|
||||
[debug-zsh]: https://collectednotes.com/gillchristian/debugging-zsh-init-times
|
Loading…
Add table
Add a link
Reference in a new issue