performance - zsh使用prezto启动提示极慢

标签 performance zsh zshrc prezto

我正在使用 zsh 和 prezto。启动提示速度极慢。我在 Mac 上使用 iTerm2。

enter image description here

这是我的~/.zshrc

#
# Executes commands at the start of an interactive session.
#
# Authors:
#   Sorin Ionescu <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2f5c405d4641014640414a5c4c5a6f48424e4643014c4042" rel="noreferrer noopener nofollow">[email protected]</a>>
#

# Source Prezto.
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
  source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
fi


# Customize to your needs.
PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
export PATH

# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"

autoload -U +X bashcompinit && bashcompinit

这是我的~/.zpreztorc

zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'ssh' \
  'completion' \
  'homebrew' \
  'node' \
  'osx' \
  'git' \
  'syntax-highlighting' \
  'history-substring-search' \
  'autosuggestions' \
  'prompt'

我有预感模块的顺序会有所不同?此外,我还尝试删除一些模块,但这似乎也没有什么区别。

最佳答案

我遇到了类似的问题,解决问题的方法是:

将此行添加到我的 .zshrc 文件的最顶部:

zmodload zsh/zprof

其中包括位于文件开头的 zsh 分析模块 zprof

然后打开一个新的终端 session (以便进行更改并加载 zprof)并执行

zprof

它向我提供了一份报告,说明我的系统大部分时间都花在了哪里。

在我的特定情况下,它正在执行与 nvm 相关的任务。我怀疑 OP 也有类似的问题,因为他们正在加载 node 模块。

由于这些天我很少使用 Node,所以我只是卸载了与 Node 相关的所有内容,包括 nvm,并且还删除了 .zshrc 上的所有与 Node 和 nvm 相关的行。

这对我来说是有效的,所以我注释掉了 .zshrc 中的 zmodload zsh/zprof 行。

在谷歌搜索时,那些实际上需要每天使用 Node 的人已经提出了其他解决方案。

例如这里:https://xcv58.me/if-your-zsh-starts-very-slow-cb1434ea16bd

此人创建了一个名为 zsh-lazy-load ( repo ) 的 zprezto 模块,可用于 defer loading nvm until it's needed .

免责声明:我自己没有尝试过zsh-lazy-load,所以我不能完全推荐它;只是添加它以防它对任何人有用。

关于performance - zsh使用prezto启动提示极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54434933/

相关文章:

mysql - 在大表上使用 LEFT JOIN 查询真的很慢

SQL语句出奇地慢

terminal - 如何将 zsh 更新到最新版本?

bash - 您是否需要在 bash profile/zshrc 中包含环境变量的导出?

bash - 如何回显 'cat file.js; ls' 的前半部分?

php - Heroku 1x 与 2x 网络测功机

performance - Indy10,400ms 简单的 TCP/IP 请求和响应

zsh:重置 stdout/stderr 重定向

zsh - 在指定文件夹中运行 zsh 脚本

macos - 在 Mac 上使用 zsh 的 bindkey