Visual Studio生成非常慢


71

这适用于2008和2010版本(可能也适用于早期版本)。同样适用于C ++和C#项目。

初始构建(重新引导后)以正常速度运行,并具有相当好的CPU使用率。经过“一段时间”(即使用计算机进行“填充”),随后的构建可能会非常非常缓慢地运行,并且CPU使用率非常。我发现的唯一解决方法似乎是重新启动,然后循环又重新开始。WPF和非WPF项目均会发生这种情况,尽管使用WPF的情况要差10倍。

我在不同的机器上发生了这种事情,甚至在不同的组织中工作,所以我认为这是Visual Studio的事情,而不是环境的事情。我已经尝试了平常的方法(Google,关闭AV,Intellisense,Resharper等,并且目前期待获得订购的SSD)。

我当前的计算机规格是2.7gig四核,4GB RAM,XP(尚未运行Win7),250Gb硬盘等

任何人都知道这可能是什么以及如何解决?

提前致谢!


如果我不得不猜测,我会说Visual Studio会为其自身保留一定比例的总可用内存,并将其用于缓存。当可用的总内存较少时,VS内存将减少,因此缓存也将减少。不过我不知道。
菲利普·施密特

VS2010和WPF遇到相同的问题-我有一个SSD,它无济于事。
BrainSlugs83 2014年

嗯 我在具有VS2008和VS2010和本机C ++的多台计算机上使用此工具已有多年,但是由于我不记得最近看到过这种情况,它似乎已经消失了。
drescherjm 2014年

Answers:


106

尝试一下,因为它对我有用:

Windows+R或从开始打开运行。

现在输入%temp%并删除所有内容...

现在,再次打开“运行”,然后键入prefetch并删除所有内容。

现在打开VS,查看性能。


4
哇,预取就成功了。我删除了所有%temp%文件,并获得了约3GB的存储空间,但这并没有解决。从预取中删除内容就可以了!
阿加西亚人,2015年

使用ccleaner从选项包括文件夹%temp%prefetch,下载链接ccleaner.com/ccleaner/download/standard
阿什拉夫Abusada

31

尝试这个:

Devenv.exe /重置设置


该标志修复了我在启动时悬挂VS2010时遇到的问题。将来会记得的!
亨利·威尔逊,

3
我在2012/13年度遇到过同样的问题。转到工具/导入导出设置/重置。解决了。问题是由休眠状态下的停电引起的,我猜设置文件已损坏。
peterincumbria

@jurget谢谢。这使我摆脱了困境,因为Azure SDK更新和Visual Studio中其他与Web相关的设置之间的某种关系导致与Web相关的任何操作都执行得异常缓慢,甚至在本地运行网站也是如此。不知道这是否重要,但是我在管理员级别的命令提示符下也执行了该命令。
罗伯特·奥施勒

18

我有同样的问题。

我通过禁用“实时扫描”安装了McAfee安全中心

建设时间从一个小型项目的40秒缩短到1秒。


卡巴斯基对我来说;1+分钟到1秒。
尼克

1
Windows Defender:40秒=> 3毫秒。谢谢!
toddmo '17

Bitdefender也造成了麻烦,甚至冻结了VS。10+秒至1秒。谢谢!
John M.

MalwareBytes为我提供实时保护
GHC

以我在2020年末的情况为例,我运行了acronis真正的图像保护,排除了我的项目文件夹时间,恢复了正常水平
Rippo

12

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


1
我在Windows 10上使用VS2015,并且遇到相同的问题。我清除了%temp%和预取目录。然后我重置了devenv.exe设置,但它们没有帮助。然后,我将节电设置从“平衡”更改为“高性能”,并且可以正常工作。CPU开始使用100%。它的CPU使用率没有增加超过30%
irsis,2016年

1
在校园突然停电之后,我遇到了VS 2015的构建问题。建立解决方案需要永远。那就是使它起作用的方法。该方法看起来很奇怪,但确实有效。谢谢。
Boveyking

1
出于好奇,我改回了电源计划以保持平衡,并开始构建解决方案,但它又卡住了。然后变回高性能,它就建立了。看来这是我使VS工作的唯一方法。我很幸运能生活在如此美好的世界中,并在如此奇妙的领域工作。我每天都见证奇迹。
Boveyking

uowwwwwwwwwwwwwwwwwwww ...我的构建速度很慢,这对我有用...另外,停止调试后我遇到了延迟,这是通过删除所有断点(有很多停用的断点)解决的...现在工作很多更好的...感谢这个答案......我真的确信这种变化会给我其他的性能提升..
费尔南多·梅内塞斯·戈麦斯

7

尝试使用ProcessMonitor(http://technet.microsoft.com/en-us/sysinternals/bb896645)查找Visual Studio在构建过程中所做的事情。添加筛选器“ ProcessName为devenv.exe,然后包含”并进行一些研究。对我有用。

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


2
请发布一些示例代码,而不仅仅是发布链接,以便在链接失效时您的答案仍然有用。
伊利丹内克(Illidanek)

这对我没有帮助。我看到它写了很多日志,但是将其关闭并没有帮助。
Daniel Ryan

3

我在Windows 10上使用VS2015,并遇到了相同的问题。我清除了%temp%并预取了不起作用的目录,然后将省电设置从``平衡''更改为``高性能'',并且可以正常工作。


2

我没有看到这种答案,所以我认为我的这可能对某人有所帮助。我对VS构建时间的问题很愚蠢:我在另一台计算机上拥有源代码。每次我尝试构建它时,都必须与该计算机建立连接,这导致VS冻结时间延长。在这里和其他地方尝试了大多数解决方案后,我发现了这个问题。(用我的头撞在桌子上的图释)


1

我针对非常缓慢的Visual Studio(构建所有内容大约需要1.5-2分钟)的解决方法是关闭无线网络。

除了有线网络之外,我还启用了无线网络。看来我的计算机试图使用无线连接来连接到我们的本地服务器,该本地服务器对无线网络不可用,这导致了长时间的延迟。


您能对此进一步说明吗?-网络速度如何精确地影响Visual Studio的构建时间?-无论如何,我在台式机(没有无线网卡)上遇到了上述问题。
BrainSlugs83 2014年

1
发生在很久以前,我不记得确切的细节,但是大约是在我连接无线网络时,由于某种原因,构建过程试图连接到网络驱动器并等待Windows的默认网络位置超时,然后继续构建。当我关闭无线网络(不允许访问我们的网络驱动器)并仅使用有线网络(提供对网络驱动器的访问)时,构建过程变得非常快。
Antti 2014年

Visual Studio尝试连接到MS服务器并下载一些信息。如果您的Internet连接已关闭,则构建将正常运行。
阿里·阿曼扎德甘

1

如果它是ASP.NET MVC项目,请检查.csproj以查看是否<MvcBuildViews>true</MvcBuildViews>已设置。这可能会导致构建缓慢。



1

原因之一是Visual Studio不断地重建相同的依赖项目,尽管没有任何变化。想象一个解决方案,其中有无数个无缘无故建立的项目。这浪费了巨大的时间...

解决此问题的主要方法是修改每个“复制到输出目录”(将其设置为“始终”)。将其更改为“如果较新则复制”。

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

有关更多信息,此线程讨论了这一特定点


0

“一些时间”大约需要多长时间?(例如,小时?天?)

这可能很简单,因为您用完了RAM。Ctrl-Shift-Esc将加载进程监视器,您可以在其中查看内存使用率并杀死猪。一旦运行低,您的链接器将很难尝试将内存交换到磁盘(并且Windows通常不会报告交换开销,除非您打开系统利用率)。根据项目的大小,链接可以使用大量的内存制作表。


不会,有足够的RAM(例如1.5Gb使用4Gb),因此可以确定它不会损坏磁盘。“某些时间”通常是重新引导后的第二个或第三个版本,在此之前可能需要进行一些调试。在Proc Explorer中找不到任何有用的东西。唯一的“线索”是重启后,它可以正常工作一段时间。问题是,经过几次构建/调试会话后,如何解决机器堵塞问题?谢谢
Maz

1
我在8 GB和16 GB机器上都遇到了这个问题(在VS 2010上使用WPF项目)(两种情况下都超过50%可用,16 GB是带有HT的2.2 GHz四核,8 GB是3.2) GHz AMD六核)。
BrainSlugs83 2014年

对不起,这是偶然的,无法撤消。如果答案已编辑,可以还原它。
Krzysztof Bociurko

0

在某个时候,我有一个程序在几周后花费了更多的时间来编译。出于沮丧,我删除了解决方案和项目的调试文件夹。visual studio要做的是首先重建整个解决方案(确实需要一些时间),但是此后,构建过程又恢复了原来的速度。不知道它是否也会为您工作。


0

检查您的Internet属性选项(连接),并确保Automatically detect settings已选中。


0

如果单个解决方案中有许多项目,请尝试仅构建更改的项目,而不是构建整个解决方案。即,Alt + B + U而不是Alt + B + B。


0

备份文件并删除此文件夹中文件夹中的所有内容。

C:\ Users \ {用户名} \ AppData \ Local \ Microsoft \ WebsiteCache

重新启动Visual Studio并检查性能。

希望这可以帮助!谢谢


0

作为快速检查,请运行扫描以确保当前没有任何文件感染系统,然后转到Windows Defender安全中心->病毒和威胁防护->禁用实时防护:

实时保护

在Visual Studio中重建解决方案,注意花费的总时间,并在任务管理器中进行观察以查看Antimalware Service Executable是否似乎在消耗大量处理器时间。恭喜,假设您的构建速度更快并且CPU不再那么忙碌,那么您已经确定了导致性能问题的原因之一。下一步是负责任地告诉Windows Defender不要将Visual Studio单独关闭。


0

就我而言,我使用了项目目录内的“ wwwroot”目录来存储GB的数据。将“ wwwroot”移到解决方案目录之外解决了我的构建时间。对于我的.NET Core Web应用程序,我编辑了launchSettings.json并添加了新的环境变量ASPNETCORE_WEBROOT

...
"profiles": {
    "Development": {
      "commandName": "Project",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_WEBROOT": "../../wwwroot"
      },
      "applicationUrl": "https://localhost:5001;http://localhost:5000"
    },
...

0

由于我是通过Google搜索来到这里的,因此我会将发现的问题作为我特定问题的解决方案。

我已经从.NET Core 1.1升级到.NET Core 2.1。这导致RazorGenerate和RazorTagHelper调用各花费20秒。根据Daniel Crabtree的说法,这是由.NET Core 2.1的更改引起的,该更改默认情况下启用了Razor视图的预编译。

解决方法是将以下内容添加到您的.csproj:

<PropertyGroup>
  <UseRazorBuildServer>false</UseRazorBuildServer>
</PropertyGroup>

资料来源:https : //www.danielcrabtree.com/blog/444/speed-up-compilation-of-asp-net-core-2-1-projects


0

在YourProject.csproj中,将目标标记添加到项目标记的最后一行

<Project>
.
.
<Target Name="PlatformVerificationTask" Condition="'$(SkipPlatformVerification)' 
    != 'true'" />  
</Project>

-1

我在VS上运行的任何命令或功能都存在相同的问题。禁用防病毒实时保护后,运行时间从10秒减少到0.5秒或更短。顺便说一句,有趣的是,防病毒措施正在减慢C#的运行时间,但是C ++完全可以。


虽然您的经历可能是对的,但是OP表示他们已经完全关闭了防病毒功能,并且没有帮助。此外,他们在C ++方面也遇到了问题。很高兴您能找到解决方案。
Orion

好吧,正如我从评论中看到的那样,此问题针对不同的PC具有不同的解决方案(或者原因也是具体的防病毒类型,因为我的是“ Avira Antivirus”)
Bear Grylls
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.