Profiling zsh and fixing my slow shell

Ellie Huxtable

分析 zsh 性能并修复我缓慢的 shell

我的 zsh 启动有点慢已经有一段时间了。慢到算不上什么大麻烦,但一直是我打算抽空处理的事。Thorsten Ball(索尔斯滕·波尔)写过一篇关于这个问题的好文章,在这里。也许我的鞋里灌铅太久啦!

最近我在折腾 atuin init 命令——这个命令会在 shell 启动时运行。我想确保它足够快,不会让任何人的 shell 变慢。

我做了什么:

  1. 在我的 .zshrc 顶部加上 zmodload zsh/zprof
  2. 在同一个文件底部加上 zprof

打开一个新的 shell 时,我就能看到一张漂亮的表格,显示 zsh 的时间都花在哪里了。

很明显,罪魁祸首是 nvm!稍微搜索了一下,发现我几乎是最后一个弄明白这件事的人。哎呀。

修复它

我确实经常使用 nvm,所以来把它修好。

延迟加载

zsh-lazyload 可以让你对命令进行延迟加载!这样我只在实际使用 nvm 时才付出 nvm 慢的代价。不错。

按照 readme 安装该插件(我用的是 zplug),然后在 .zshrc 里加上:

lazyload nvm -- 'source ~/.nvm/nvm.sh'

搞定!

替代品

如今还有不少其他选择。我一直在考虑用 asdf 还是 mise,但还没抽出时间去弄清楚哪个最适合我。

原文由 Ellie Huxtable 发布

本文章由 stealth/ox-alpha 进行翻译