Git Bash 在 Windows 上启动非常慢

Git Bash 在 Windows 上启动非常慢

我读过与此类似的帖子;看来我的问题有所不同。

我怀疑我遇到此问题是由于我的,.bash_profile因为当我删除它并再次打开终端时它会快速启动,并且显示:

WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.

This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.

.bash_profile 已生成

# generated by Git for Windows
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc

.bashrc

if [ -t 1 ]; then
exec zsh
fi

我的环境变量中也有一个 HOME 变量。

答案1

在我的情况下,我在 Windows 上使用 MING64 和 Git bash。加载每个窗口都花了整整 15 秒。结果发现 %USERPROFILE% 中的 .bashrc 是罪魁祸首。

我的系统上安装了 NVM,这些行导致每个终端窗口都需要很长时间加载。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

我注释掉了最后一行,现在,bash 只需一秒钟即可加载。我很少使用 NVM,因此无需在每次启动时加载它。

答案2

我遇到了同样的问题。什么都没用。Git bash 做任何事情都非常慢,只是按回车键就需要 20 秒才能得到一个新的提示。

我的问题最终出在页面文件设置上。我有 64GB 内存和所有 M.2 SSD,所以我认为我不需要那么多页面文件。我已将其手动设置为 256-2048M 范围。将其改回系统管理后,git bash 又恢复了速度。但也再次损坏,最终又发生了几次。

现在我已经完全关闭了页面文件并且 git bash 运行速度非常快。

答案3

我在 Windows 10 上全新安装的 git 上测试了同样的场景,得到了同样的结果。确实,重命名或删除文件.bash_profileC:\Users\<username>可以消除 bash 启动延迟。但需要一段时间。当然,我设置了HOME环境变量。重新启动 Terminal 和 cmd(我测试了两者)后,通常 shell 中第一次运行 bash 仍然很慢,但在一些退出/启动循环后启动速度会更快。

然后我怀疑.bashrc是位于(/home/<username>)Linux 发行版 ~/ 目录中的文件,因为默认情况下它的大小为 3.7K,可能会导致速度变慢。重命名它后,我得到了相同的行为:如果我在同一个 cmd/终端(底层使用 WSL)中多次运行 bash,那么除了第一次之外,后续运行都会变得非常快。

我也测试了运行没有配置文件的 bash,速度同样很慢:

 Measure-Command { wsl -e bash -noprofile -norc -c "echo Hello" }

TotalSeconds      : 29,3953657

在同一窗口中的后续运行很快:

Measure-Command { wsl -e bash -noprofile -norc -c "echo Hello" }

TotalSeconds      : 0,2136513

因此,我认为真正的问题是 wsl 如何处理 W10 中的内存和页面文件,以及/或缓存数据进行模拟。

您还应该注意到,运行 bash 命令实际上调​​用的是 wsl,而不是 git bash:

C:\Users\user>where bash
C:\Windows\System32\bash.exe
C:\Users\user\AppData\Local\Microsoft\WindowsApps\bash.exe

但 git bash 实际上是从这里调用的:

"C:\Program Files\Git\git-bash.exe" --cd-to-home

相关内容