Profiling zsh and fixing my slow shell

Ellie Huxtable

分析 zsh 性能,修复启动缓慢的 Shell

原文由 Ellie Huxtable 发布,订阅该博客

我的 zsh 启动一直有点慢,已经有一段时间了。倒也没慢到特别烦人的程度,但一直想着找时间解决一下。Thorsten Ball 对此写过一篇很棒的文章,见这里。也许我已经负重前行太久了!

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

我的做法是:

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

重新打开一个新 shell 后,就能看到一张清晰的表格,展示 zsh 的时间都花在了哪里

很明显,罪魁祸首就是 nvm!稍微搜索了一下,发现好像就剩我还不知道这事了。哎呀。

修复

我平时还是会比较频繁地使用 nvm,所以来把它修好吧

懒加载

zsh-lazyload 可以让你对命令进行懒加载!这样一来,只有在真正使用 nvm 的时候,才需要承受它带来的缓慢开销。还不错。

按照 readme 安装这个插件(我用的是 zplug),然后

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

加到我的 .zshrc 里就行。搞定!

替代方案

现在还有不少其他可选方案。我一直在纠结是用 asdf 还是 mise,但还没抽出时间去搞清楚哪个更适合我。

本文章由 muse-spark-1.2-contributor 进行翻译

评论