Visual Studio 构建速度非常慢

85

这适用于2008和2010版本(也可能适用于之前的版本)。同时适用于C++和C#项目。

在初始构建(重新启动后)时,运行速度正常,并且CPU利用率相当不错。经过“一段时间”(即使用计算机进行“其他工作”),接下来的构建可能会非常缓慢,并且CPU利用率非常低。我发现唯一的修复方法似乎是重新启动,然后循环重新开始。这在WPF和非WPF项目中都会发生,尽管在WPF中要糟糕10倍。

这在不同的机器上都发生过,甚至在为不同组织工作时也是如此,因此我认为这是Visual Studio的问题,而不是环境问题。我已经尝试了通常的解决方法(谷歌搜索、关闭防病毒软件、Intellisense、Resharper等),目前期待着获得我所订购的SSD。

我的当前机器规格是2.7 GHz四核、4GB RAM、XP(还没有在工作中使用Win7),250GB硬盘等。

这个问题的原因是什么,如何解决?


如果我要猜的话,我会说Visual Studio保留了一定比例的可用内存,用于其缓存。当可用内存较少时,VS使用的内存也较少,因此缓存也较少。不过我不确定。 - Phillip Schmidt
在使用VS2010和WPF时遇到了同样的问题,我有一块固态硬盘,但并没有什么用。 - BrainSlugs83
嗯,多年来我在使用 VS2008 和 VS2010 这些本地 C++ 编译器时遇到过这个问题,但最近好像没有再出现过了。 - drescherjm
24个回答

135
尝试以下方法,这对我起到了作用:
按下 Windows+R 键或从开始菜单中打开运行。
现在输入 %temp% 并删除其中的所有内容...
现在再次打开运行,输入 prefetch 并同样删除其中的所有内容。
现在打开 VS 并查看性能。

6
哇,预读取缓存起了作用。我删除了所有的“%temp%”文件,回收了约3GB的空间,但这并没有解决问题。从预读取缓存中移除内容解决了问题! - agarcian
使用 ccleaner 并在选项中包括文件夹 %temp%prefetch,下载链接 https://www.ccleaner.com/ccleaner/download/standard - Ashraf Sada

32
尝试这样做:

Devenv.exe /resetsettings


这个标志解决了我在启动VS2010时遇到的问题。将来会记住它! - Henry Wilson
4
我在2012/13年遇到了同样的问题。转到工具/导入导出设置/重置,问题就解决了。 这个问题是由于在休眠时停电导致设置文件损坏所致。 - 27k1
@jurget 谢谢。这让我摆脱了一个困境,其中Azure SDK更新和Visual Studio中的其他Web相关设置导致任何Web相关操作执行非常缓慢,即使在本地运行网站也是如此。不确定是否重要,但我还在管理员级别的命令提示符中执行了该命令。 - Robert Oschler

22

我有同样的问题。

我安装了McAfee安全中心,但禁用了“实时扫描”功能。

编译时间从小型项目的40秒降至1秒。


1
卡巴斯基适合我;从1分钟到1秒钟。 - Nick
3
Windows Defender:40秒 => 3毫秒。谢谢! - toddmo
1
Bitdefender也会引起问题,甚至会导致VS冻结10+秒到1秒。谢谢! - John M.
1
MalwareBytes 实时保护适合我。 - GHC
1
在我这种情况下,2020年底,我运行了Acronis True Image保护,将我的项目文件夹排除在外后,一切恢复正常。 - Rippo

18

检查Windows的节能设置。将其设置为“高性能”(即使在台式机上也是如此)。这对我有帮助。


1
我在Windows 10上使用VS2015,也遇到了相同的问题。我清空了%temp%和prefetch目录,然后重置了devenv.exe设置但都没有起作用。接着我将电源管理设置从平衡模式改为高性能模式,这样就可以解决问题了。CPU开始100%利用率,而且其使用率也不再停留在30%以下。 - irsis
1
在我们校园突然停电后,我遇到了VS 2015的构建问题。构建一个解决方案需要很长时间。这是使它正常工作的方法。虽然这种方法看起来很奇怪,但它确实有效。谢谢。 - Boveyking
1
出于好奇,我将电源计划改回平衡模式并开始构建解决方案,结果又卡住了。然后改回高性能模式,就可以构建了。看来这是我让VS工作的唯一方法。我很幸运生活在如此美妙的世界中,在如此神奇的领域工作。我每天都见证奇迹的发生。 - Boveyking
我遇到了编译速度慢的问题,但是这个方法对我很有效。此外,我在停止调试后还遇到了延迟的问题,通过删除所有断点(有许多已禁用的断点),问题得以解决。现在我的工作效率大大提高了,感谢这个答案。我相信这个改变会给我带来其他性能上的提升。 - Fernando Meneses Gomes
如果您使用的是笔记本电脑,请检查风扇设置。即使 CPU 使用率为 100%,如果风扇不在 100% 的状态下运行,CPU 也无法被充分利用。 - Markus

10

尝试使用ProcessMonitor(http://technet.microsoft.com/en-us/sysinternals/bb896645),查找Visual Studio在构建过程中正在执行的操作。添加筛选器 "ProcessName is devenv.exe then Include" 并进行一些研究。对我很有用。

我遇到了一个类似的问题- 构建和调试过程非常缓慢 - 以及我通过Process Monitor解决了它。我运行Process Monitor并发现Visual Studio进程多次读写一些HTL文件。这是程序集绑定日志(http://msdn.microsoft.com/en-us/library/vstudio/e74a18c4(v=vs.100).aspx) - 存储有关库绑定的信息的实用程序。启用此日志后,此实用程序在我的硬盘上创建了约8GB的HTM日志。非常缓慢。然后我禁用日志记录,我的项目构建时间从10分钟减少到10秒!


2
请提供一些示例代码,而不仅仅是链接,这样即使链接失效,您的答案仍然有用。 - Illidanek
这并没有帮助我。我看到它经常写入日志,但关闭日志并没有帮助。 - Daniel Ryan

5

我在Windows 10上使用VS2015,遇到了相同的问题。我清除了%temp%和prefetch目录,但仍然无法解决问题。然后我将电源设置从平衡模式改为高性能模式,问题就解决了。


3

我没有看到这类答案,所以我认为我的回答可能对某些人有帮助。我的VS构建时间问题很愚蠢:我的源代码在另一台电脑上。每次我尝试构建它时,都必须连接到那台电脑,这会导致VS冻结很长时间。 在尝试了这里和其他地方的大部分解决方案之后,我发现了这个问题。(摇头表情)


2

我遇到了同样的问题。删除解决方案目录中隐藏的.vs文件夹可以解决这个问题。


为什么删除那个隐藏文件夹是可以的? - paraJdox1
1
@Hacki:它包含了Visual Studio的环境设置(缓存、最近打开的文件、断点、书签等)。如果你不介意忘记它们,删除它是可以的。一旦你再次打开解决方案,它将会重新创建。 - György Kőszeg
感谢 @György Kőszeg 提供这一重要信息。 - paraJdox1
这是唯一一个帮助了我的。 - Markus

2

原因之一是Visual Studio会一遍又一遍地重新构建相同的依赖项目,即使没有任何更改。想象一下,一个解决方案有大量的项目,但它们似乎没有任何理由被构建。这浪费了大量的时间...

解决方法是检查每个"复制到输出目录",将其设置为"只在较新时复制"。

可能有助于查看详细的构建日志。打开工具 > 选项 > "项目和解决方案" > "生成和运行"。现在将“MSBuild项目构建输出详细程度”设置为"诊断"

有关更多信息,请参见此主题


2

前往 工具 > 选项 > "项目和解决方案" > "生成和运行"。现在将 "MSBuild 项目生成输出详细程度" 设置为 "正常" 或 "最小",并将另一个设置 "MSBuild 项目生成日志文件详细程度" 也设置为相同。

我之前将其设置为 "诊断",导致构建时间过长。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接