如何使VisualStudio中的git不消耗恒定的35%CPU?

如何使VisualStudio中的git不消耗恒定的35%CPU?,git,visual-studio-2013,Git,Visual Studio 2013,一段时间以来,我一直看到VisualStudio2013的git支持不断地消耗我大量的CPU。我试过Mark Rendle禁用git的方法。在某一点上,删除git支持的所有注册表项非常有效。但是,从更新2开始,此方法不再有效。我也尝试过他的扩展,但没有帮助 我知道它与git有关,因为我在VisualStudio上运行了一个分析器,结果非常清楚 每当我保存一个文件时,就会出现30-60秒的CPU使用高峰。在编辑代码时,这是很常见的。如果同时打开VisualStudio的其他实例,其他实例也会看到

一段时间以来,我一直看到VisualStudio2013的git支持不断地消耗我大量的CPU。我试过Mark Rendle禁用git的方法。在某一点上,删除git支持的所有注册表项非常有效。但是,从更新2开始,此方法不再有效。我也尝试过他的扩展,但没有帮助

我知道它与git有关,因为我在VisualStudio上运行了一个分析器,结果非常清楚

每当我保存一个文件时,就会出现30-60秒的CPU使用高峰。在编辑代码时,这是很常见的。如果同时打开VisualStudio的其他实例,其他实例也会看到类似的CPU峰值。因此,当打开4个VisualStudio实例时,在合并所有实例时,我将看到100%的CPU使用率。这是非常烦人的,并且使得VisualStudio在某些点上无法使用


在VisualStudio2013中,是否有一种解决方法可以真正禁用git支持

我不能通过前面提到的方法来禁用git扩展,但我听说了它的好处。不过,这只是解决问题的一种方法,而不是实际的解决方案

VisualStudio在git存储库的工作目录上挂接一个文件系统侦听器以识别更改:例如,当您切换分支时,我们会在团队资源管理器中更改分支选择器。类似地,当您编辑一个文件时,我们在解决方案资源管理器和团队资源管理器中将该文件装饰为已更改

这通常不是一个昂贵的检查,但是如果在
.gitignore
(如构建输出!)中有大量文件系统搅动(如构建!),那么这是愚蠢的、疯狂的昂贵

请再次检查
.gitignore
文件是否设置为适当忽略生成输出。请确保在执行此操作时,
git status
不会报告生成输出或自动生成的文件


如果您认为设置正确,请通过电子邮件与我联系,我们可以尝试确定忽略匹配逻辑中是否存在错误。

我刚刚找到了一个适合我的解决方案: “运行git rev parse--show toplevel。它将告诉您该git存储库的根目录在哪里。其中将有一个.git文件夹。只需删除它即可”


注意:这会破坏本地的git存储库历史。

即使在将源代码管理提供程序更改为“无”时,我仍然可以在Visual Studio中看到相同的行为和性能特征。您是否在使用git,是否尝试在选项中更改源代码管理插件?@PhilipPittle是的。是的,这个项目使用的是git(但我更喜欢在VisualStudio之外管理它),有点不相干,但是。。。那是什么剖析器?看起来不错。@ParthianShot这是Visual Studio探查器。我认为它可能只包含在Premium或Ultimate或其他内容中。gitignore设置为忽略生成输出,git status也不报告生成输出。这是一个相当大的解决方案和git存储库。(2G total repo,1G checkout)这破坏了本地git存储库的历史记录,这是不负责任的建议。您没有警告OP他们将无法在visual studio之外使用其他git工具,并且他们将丢失所有未推送的提交/标记/分支。@完美主义者添加了警告部分。