Visual Studio构建非常慢

时间:2012-08-23 16:01:00

标签: performance build

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

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

我在不同的机器上遇到过这种情况,甚至为不同的组织工作,所以我认为它是Visual Studio的东西,而不是环境的东西。我已经尝试了平常(Google,关闭AV,Intellisense,Resharper等,目前期待获得我订购的SSD)。

我目前的机器规格是2.7gig四核,4GB RAM,XP(还没有Win7工作),250Gb硬盘等

任何人都有任何想法可能是什么以及如何解决它?

提前致谢!

21 个答案:

答案 0 :(得分:82)

试试这个,因为它对我有用:

Windows + R 或从“开始”开始运行。

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

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

现在打开VS并查看效果。

答案 1 :(得分:23)

试试这个:

Devenv.exe / resetsettings

答案 2 :(得分:15)

我遇到了同样的问题。

通过禁用"实时扫描"

,我安装了McAfee安全中心

建筑时间确实从一个小项目的40秒到1秒。

答案 3 :(得分:8)

检查Windows中的省电设置。将其设置为“高性能”(即使在桌面上)。这对我有帮助。

答案 4 :(得分:5)

尝试使用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/en-us/library/vstudio/e74a18c4(v=vs.100).aspx) - 存储有关库绑定的信息的实用程序。一旦我启用了这个日志,并且这个实用程序在我的硬盘上创建了大约8 Gb HTM日志)它非常慢。然后我禁用日志记录,我项目的构建时间从10分钟减少到10秒!

答案 5 :(得分:3)

我在Windows 10上使用VS2015并遇到了同样的问题。我清除了%temp%并预取了那些无法正常工作的目录。然后我将省电设置从平衡更改为高性能并且工作正常。

答案 6 :(得分:1)

转到工具>选项>“项目和解决方案”>“构建和运行”。现在将“MSBuild 项目构建输出详细程度”设置为“正常”或“最小”,其他设置“MSBuild 项目构建日志文件详细程度”也相同。

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

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

答案 9 :(得分:1)

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

答案 10 :(得分:1)

我对非常​​缓慢的Visual Studio(构建任何花费大约1.5-2分钟)的修复就是关闭无线网络。

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

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

答案 13 :(得分:0)

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

  

<强> C:\用户\ {用户名} \应用程序数据\本地\微软\ WebsiteCache

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

希望这有帮助! 感谢

答案 14 :(得分:0)

在某些时候,我有一个程序在几周后花了相当多的时间进行编译。出于沮丧,我删除了解决方案和项目的调试文件夹。 Visual Studio所做的是首先重建整个解决方案(这确实需要一些时间),但在此之后,构建过程的速度又恢复了。不确定它是否也适合你。

答案 15 :(得分:0)

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

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

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

有关更多信息,this thread讨论了这一点

答案 16 :(得分:0)

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

实时保护

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

答案 17 :(得分: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"
    },
...

答案 18 :(得分: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

答案 19 :(得分:-1)

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

答案 20 :(得分:-1)

关于“一段时间”有多长? (例如,小时?天?)

它可能就像你用完RAM一样简单.Ctrl-Shift-Esc会加载进程监视器,你可以看到你的内存利用率,并杀死生猪。一旦它运行不足,您的链接器将减慢尝试将内存交换到磁盘(并且Windows通常不会报告交换开销,除非您打开系统利用率)。根据项目的大小,链接可以使用大量的内存制作表。