gpt4 book ai didi

Windows XP 上的 Git sh.exe 进程 fork 问题,慢吗?

转载 作者:太空狗 更新时间:2023-10-29 12:49:51 29 4
gpt4 key购买 nike

Git 对我的工作流程至关重要。我在具有 3GB RAM 的四核机器上的 Windows XP 上运行 MSYS Git,通常它 react 灵敏且敏捷。

突然出现一个问题,即从 Git Bash 命令提示符运行任何命令(包括 lscd)需要超过 30 秒的时间。有趣的是,从 bash 提示符看来 ls 运行得相当快,然后我可以看到 ls 的输出,但提示符返回大约需要 30 秒。如果我切换到 Windows 命令提示符(通过从开始菜单运行 cmd),与 git 相关的命令也会永远运行,即使只是运行。例如 git status 可能需要将近一分钟的时间才能发生任何事情。有时,这些过程根本就没有完成。

请注意,我安装了“MSYS Git”以及常规的“MSYS”,用于诸如 MinGWmake 之类的东西。

我认为问题与位于 C:\Program Files\Git\bin 中的 sh.exe 有关。当我从 bash 提示符运行 ls 时,或者当我从 Windows 提示符调用 git 时,任务管理器最多显示四个 sh.exe 实例> 来来去去的流程。

我在这里等待 ls 返回,您可以看到任务管理器正在运行 git.exe 和四个 sh.exe 实例>: Here I am waiting for ls to return and you can see the task manager has git.exe running and four instances of sh.exe

如果我在 ls 中间 ctrl-c 我有时会遇到错误,包括:

sh.exe": fork: Resource temporarily unavailable
0 [main] sh.exe" 1624 proc_subproc: Couldn't duplicate my handle<0x6FC> fo
r pid 6052, Win32 error 5
sh.exe": fork: Resource temporarily unavailable

或者对于 git status:$ git 状态

sh.exe": fork: Resource temporarily unavailable
sh.exe": fork: Resource temporarily unavailable
sh.exe": fork: Resource temporarily unavailable
sh.exe": fork: Resource temporarily unavailable

我能否修复此问题以便 git 再次快速运行,如果可以,如何修复?

我尝试过的事情:

  • 重启
  • 将 MSYS Git 升级到最新版本并重新启动
  • 将 MSYS 升级到最新版本并重新启动
  • 卸载 MSYS 并单独卸载并重新安装 MSYS Git 并重新启动

我非常不想擦掉我的盒子并重新安装 Windows,但如果我无法修复此问题,我会这样做。如果运行 git statuscd.

需要超过 30 秒,我就无法再编写代码了

最佳答案

通常当一个程序需要 30 秒来完成一些应该是瞬时的事情时,它更有可能是 I/O 超时问题,通常是网络问题,而不是您的 CPU 速度或您拥有的 RAM 数量。您可能想知道网络是如何参与的,但这是一个合理的问题(对于您的系统我也不知道)。

Msysgit 安装了一个特殊的提示符,它运行一个特殊的函数__git_ps1,在提示符中显示一些有用的信息。您可以使用 echo $PS1 看到这一点,对于我的系统,它显示:

$ echo $PS1
\[\033]0;$MSYSTEM:\w\007 \033[32m\]\u@\h \[\033[33m\w$(__git_ps1)\033[0m\] $

此额外信息完全是可选的,您可以将其关闭。因此,请在 Msysgit 窗口中尝试以下操作:

$ PS1='$ '
$

这会将提示重置为默认的 $ 并且不会尝试在提示内运行和命令。如果这解决了您的延迟问题,那么它很可能是 __git_ps1 函数。尝试手动运行它:

$ __git_ps1
(master)

看看返回需要多长时间。

您可以通过从 C:\Program Files\Git\etc\profile 中删除调用 __git_ps1 的行来解决此问题:

#Comment the lines below
#PS1='\[\033]0;$MSYSTEM:\w\007
#\033[32m\]\u@\h \[\033[33m\w$(__git_ps1)\033[0m\]
#$ '

关于Windows XP 上的 Git sh.exe 进程 fork 问题,慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5851611/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com