如何找出为什么在 OS X 中打开终端有时非常慢?

如何找出为什么在 OS X 中打开终端有时非常慢?

有没有办法详细打印在 OS X 中打开终端时执行的所有内容?

有时终端需要长达 10 秒钟才能准备好进行交互,我想知道导致这种情况的原因是什么。

最有可能的是,它是我的某个点文件中的问题,或者如某人所说,它可能是与 DNS 相关的问题,但无论如何,我想知道这种随机缓慢的原因并修复它。

有什么建议么?

答案1

假设您正在使用bash,请输入

set -x

在所有 shell 启动文件中。此 shell 选项打印执行的每个命令(扩展后)。

答案2

如果你想检查你的 shell 获取点文件所需的时间,你可以直接time执行它们。

time . ~/.bash_profile

重复上述步骤.profile(如果您使用它代替.bash_profile),.bashrc(如果您从.bash_profile* 获取此信息),等等。否则,我认为任何系统配置文件都不应该对此负责。

我个人发现bash_completion这需要相当长的时间 (~300ms) – 就我而言,这部分消耗了我获取源的大部分时间.bash_profile

*.bashrc不会自动为 OS X 中的新终端会话提供,因此您必须手动指定它。

答案3

我知道这是一个老问题,但我在 m1 macbook air 中也遇到了同样的问题。问题是 .zprofile 中有超过一千行以下内容:

...
eval "$(/opt/homebrew/bin/brew shellenv)"
eval "$(/opt/homebrew/bin/brew shellenv)"
eval "$(/opt/homebrew/bin/brew shellenv)"
...

我最终在文件开头只保留了这一点:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/edilson/.zprofileeval "$(/opt/homebrew/bin/brew shellenv)"

10 秒到几毫秒 =)

相关内容