git status 仅在一台计算机上运行缓慢

git status 仅在一台计算机上运行缓慢

我们的组织有大约十几名开发人员,他们的工作站中使用相同型号的计算机(Dell XPS 15 9570),全部运行 Windows 10。我们使用一个大型 git repo(大约 60,000 个文件,10 GB)进行工作。

除了我的电脑外,在其他所有人的电脑上,运行git statusgit bash 大约需要 300 毫秒。在我的电脑上大约需要 1600 毫秒:

$ time git status
...
real    0m1.592s
user    0m0.000s
sys     0m0.015s

winsat disk -drive c在计算机上运行并将结果与​​周围的其他几个结果进行了比较,但结果之间没有任何显著差异。

在安全模式下运行会将其缩短至约 1100 毫秒。以管理员身份运行不会产生任何影响。在不同的终端(cmd, cmder)中运行不会产生任何影响。我们都不会使用稀疏签出。git gc不会产生任何影响。我们所有人都拥有机器的最新更新、固件等。

我该怎么做才能让自己与其他电脑保持同步?我知道我可以调整git status为只查看某些文件夹以将时间减少到几乎为零,但我正在寻找造成时间差异的根本原因。我应该测量或基准测试什么具体的东西来尝试缩小导致我电脑速度变慢的原因吗?

答案1

首先要确定的是,不良行为是由于您的机器还是由于存储库的特定本地副本造成的。.git文件夹中的文件会以各种方式影响性能 - 中的设置.git/config、lfs 文件的存在、可以垃圾收集的提交等。

如果是 repo 的本地副本有问题,那么您可以深入研究不同之处——.git/config首先检查可能是个好主意。

或者,如果您提交了所有更改,并且两个存储库具有相同的提交历史记录(指向相同的HEAD),那么您甚至可以删除错误的.git并替换为正确的。如果您有未提交的更改或存储库具有不同的提交历史记录,那么这是一个坏主意,您将丢失工作和/或混淆 Git。

如果是你的电脑出了问题,那么你必须开始问自己你的电脑和别人的电脑有什么不同。这可能有很多原因(软件或硬件),但比较通过sysinternalsprocmon在运行时的文件访问日志/时间git status可能是一个好的开始。

相关内容