iTerm/Terminal OS X 打开 shell 很慢

iTerm/Terminal OS X 打开 shell 很慢

我使用的是 OS X 10.8,最近我注意到 iTerm2 在打开新 shell 时有时会非常慢。我需要大约 5 秒钟才能执行某些操作。这似乎不多,但我在 shell 中工作很多,所以这可能会很烦人。

我正在将 ZSH 与 oh-my-zsh 一起使用。

我已经尝试过终端、卸载 oh-my-zsh、清除启动文件 (.zshenv、.zlogin、.zprofile、.zshrc、.zlogout) 中所有不必要的内容,并清除 /var/log/asl 中的 ASL 文件,虽然它减少了一点(比如 0.20 秒),但没有任何东西可以使它立即下降甚至低于 3.0 秒。

有人还有其他想法吗?

答案1

清除登录信息 /var/log/asl,即

rm -rf /var/log/asl/*.asl

答案2

根据上述 Archan Mishra 的评论,对于 iTerm 2,答案是设置一个自定义终端命令 /bin/bash -il ,完全绕过搜索系统 ASL 日志。iterm2 现在可以立即打开。

答案3

这些是我用来优化 shell 启动速度和减少执行命令延迟的步骤 -

  1. 如果你正在使用 powerlevel9k,那么我建议立即切换到功率等级10K

Powerlevel10k 是 Zsh 的主题。它强调速度、灵活性和开箱即用的体验。它是流行的 Powerlevel9k zsh 主题的重新实现。在相同的配置下,它看起来完全相同,但渲染提示的速度提高了 10-100 倍。它在堆栈的每个级别都进行了优化,一直到使用 libgit2 的修补版本,它可以比原始版本快 4 倍扫描存储库。它可以消除 Zsh 启动延迟,即使它不是由具有 Instant Prompt 等功能的主题引起的。

  1. 转到首选项->配置文件->常规->命令并选择选项命令而不是登录 Shell,然后将以下命令粘贴到附近的框中。
login -pfq username /usr/local/bin/zsh -il

现在启动新标签时,您不会看到打印的上次登录时间。如果 /usr/local/bin/zsh 位置中没有 zsh,则需要使用 brew 安装 zsh。mac 提供的默认 zsh 位于 /usr/bin/zsh,可能使用的是 5.2 等旧版本,这会导致与 iTerm 或 oh-my-zsh 一起使用时速度变慢。

  1. 为了快速在 zsh 中粘贴,请在终端中执行以下命令。
mkdir -p $ZSH_CUSTOM/lib && touch $ZSH_CUSTOM/lib/misc.zsh
  1. 第 2 点应该已经解决了登录时间缓慢的问题。但为了安全起见,请执行以下命令
mkdir -p .hushlogin
  1. 您可能正在使用大量插件,这些插件运行缓慢且会产生延迟。您需要指出这些插件并将其删除。为此,您需要 zsh 分析。有关更多详细信息,请访问此链接 -

https://stevenvanbael.com/profiling-zsh-startup

相关内容