Git在windows上存在巨大的性能问题

Git在windows上存在巨大的性能问题,windows,performance,git,mercurial,Windows,Performance,Git,Mercurial,我一直知道Git在兼容POSIX的系统上运行得更好。然而,自从我最近第一次加入windows开发团队以来,我在Windows7上有了第一次使用大型Git存储库的真实体验 长话短说,性能很糟糕,是一个巨大的生产力问题。 存储库的容量大约为4GB,并且使用了很多子模块,这似乎是速度较慢的部分。下面是在几个windows和mac/linux机器上完成的一些平均基准测试 $ time git checkout NameOfBranch => win: 3.1s, mac/linux => 0

我一直知道Git在兼容POSIX的系统上运行得更好。然而,自从我最近第一次加入windows开发团队以来,我在Windows7上有了第一次使用大型Git存储库的真实体验

长话短说,性能很糟糕,是一个巨大的生产力问题。 存储库的容量大约为4GB,并且使用了很多子模块,这似乎是速度较慢的部分。下面是在几个windows和mac/linux机器上完成的一些平均基准测试

$ time git checkout NameOfBranch => win: 3.1s, mac/linux => 0.1s

$ time git submodule sync => win: 1m16s, mac/linux => 1.1s

$ time git submodule update --init --recursive => win: 1m33s, mac/linux => 2.1s
从Git转换不是一个选项,但除此之外,我对各种解决方案非常开放。显然,我更希望有人有一个本地解决方案,但从谷歌这似乎是一个基本的限制NTFS的工作方式

也许可以在Linux上托管一台运行Mercurial的服务器,作为真实Git存储库的代理。我不知道这是否是一个切实可行的解决方案,但我变得非常绝望,因为隐藏、提交等过程非常缓慢


感谢您的任何意见

您是否考虑过/尝试过使用虚拟机?我个人在我的mac上使用了一个,我使用git和类似的工具,然后从windows虚拟机访问文件。它被设置为共享文件夹,所以我甚至不需要复制文件。也许类似的设置也能为您工作?这听起来确实像git子模块实现中的一个bug。关于此问题,您是否已尝试联系相应的维护人员?不过,我不确定我是否理解您认为Mercurial在这种情况下可以作为代理为您做些什么。请使用libgit2实现。鉴于Windows的文件创建性能有限,您在Windows上只能做这么多。看看微软的优化带来了什么将是一件有趣的事情: