为什么 git for windows 那么慢?

2018-08-23 17:53:10 +08:00
 ballshapesdsd
以及为啥一定要在 windows 下模拟一个 linux 环境才能用,好奇怪

举个例子,初始化一个仓库,添加 10000 个文件,总共 500M,windows 下 20 分钟,linux 下 8 秒,150 倍的性能差距,惊呆了我
4172 次点击
所在节点    问与答
12 条回复
12101111
2018-08-23 20:36:29 +08:00
杀毒软件的问题,以及 NTFS 和 ext4 的确性能有差别,mingw 的性能与 WSL 与 Linux 差距几乎没有
flynaj
2018-08-23 20:49:57 +08:00
这个就是文件系统的差别,还有杀毒软件
yukiww233
2018-08-23 21:12:16 +08:00
吓得我用一个 1w 文件的仓库试了一下
mikicomo
2018-08-23 21:31:59 +08:00
啥版本?都是啥文件?见过几分钟的,没见过几十分钟的....孤陋寡闻了
SunnyFeng
2018-08-23 21:48:23 +08:00
Windows 上使用 gerrit 来 git review 也比 Linux 上慢很多
lmqdlr
2018-08-23 22:08:41 +08:00
git for windows 还好吧,wsl 是真的慢
congeec
2018-08-23 22:13:53 +08:00
不仅是文件系统的差别
windows 上创建一个进程很慢的
geelaw
2018-08-23 22:57:22 +08:00
如果建立 10000 个同样的 52428 B 的文件的话(建立一个然后复制),建立文件需要 40 秒,git add . 需要 1 分钟。

如果建立 10000 个随机的 52428 B 的文件,建立文件需要 8.7 分钟,git add . 需要 1.5 分钟。

以上建立文件是用 PowerShell 操作的。


你可以参考

https://github.com/msysgit/msysgit/wiki/Diagnosing-why-Git-is-so-slow


另外,@congeec #7 这个速度和 Windows 上建立进程的快慢没什么关系,因为 git add . 的过程里并没有创建很多进程(实际上,git add . 期间只有 2 个 git.exe 进程)。
mmdsun
2018-08-23 23:18:54 +08:00
win 2012 Server 上 git 速度比 centos 快。文件系统是 ReFS
ksharp8
2018-08-24 09:03:32 +08:00
推荐用 github desktop
gnaggnoyil
2018-08-24 13:13:37 +08:00
>以及为啥一定要在 windows 下模拟一个 linux 环境才能用

因为 git 源码里就直接假设所操作的 shell 是 POSIX shell,典型例子比如通过 ssh 对 remote 进行操作的时候.command 都写死在源码里的你敢信.
ballshapesdsd
2018-08-24 14:09:52 +08:00
@gnaggnoyil #11 可以,很社会。


@geelaw #8 在家里电脑测试了一下 5 分钟左右

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/482610

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX