【问题标题】:Visual Studio Build Very SlowVisual Studio 构建速度非常慢
【发布时间】:2012-08-19 05:02:50
【问题描述】:

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

初始构建(重新启动后)以正常速度运行,CPU 利用率相当不错。在“一段时间”之后(即使用计算机处理“东西”),后续构建可能会运行得非常非常缓慢,并且 CPU 利用率非常。我发现的唯一修复似乎是重新启动,然后循环重新开始。这发生在 WPF 和非 WPF 项目上,但 WPF 的情况要差 10 倍。

这发生在不同的机器上,甚至为不同的组织工作,所以我认为这是 Visual Studio 的事情,而不是环境的事情。我已经尝试过通常的方法(谷歌、关闭 AV、Intellisense、Resharper 等,目前期待订购我的 SSD)。

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

有人知道这可能是什么以及如何解决它吗?

提前致谢!

【问题讨论】:

  • 如果我不得不猜测,我会说 Visual Studio 会为自己保留一定百分比的总可用内存,用于缓存。当可用的总内存较少时,VS 内存就会减少,因此缓存也会减少。不过我不知道。
  • 在 VS2010 和 WPF 中遇到同样的问题 - 我有一个 SSD,但它没有任何帮助。
  • 嗯。多年来,我在多台使用 VS2008 和 VS2010 以及原生 c++ 的机器上都遇到过这种情况,但它似乎已经消失了,因为我不记得最近看到过这种情况。

标签: visual-studio performance build


【解决方案1】:

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

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

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

现在再次打开运行并输入prefetch 并从那里删除所有内容。

现在打开 VS 看看性能。

【讨论】:

  • 哇,预取成功了。我删除了所有 %temp% 文件,并恢复了大约 3GB,但这并没有解决问题。从预取中删除内容做到了!
  • 使用ccleaner并从选项中包含%temp%prefetch文件夹,下载链接ccleaner.com/ccleaner/download/standard
【解决方案2】:

试试这个:

Devenv.exe /resetsettings

【讨论】:

  • 这个标志修复了我在 VS2010 启动时挂起的问题。以后会记住的!
  • 我在 2012/13 年也遇到了同样的问题。转到工具/导入导出设置/重置。解决了。该问题是由于休眠时断电引起的,我猜设置文件已损坏。
  • @jurget 谢谢。这让我摆脱了 Azure SDK 更新和我在 Visual Studio 中其他与 Web 相关的设置之间的问题,导致任何与 Web 相关的操作执行速度非常慢,甚至在本地运行网站。不确定这是否重要,但我也在管理员级别的命令提示符下执行了该命令。
【解决方案3】:

我遇到了同样的问题。

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

构建时间确实从一个小项目的 40 秒缩短到了 1 秒。

【讨论】:

  • 卡巴斯基为我; 1+ 分钟到 1 秒。
  • Windows Defender:40 秒 => 3 毫秒。谢谢!
  • Bitdefender 也造成了麻烦,甚至冻结了 VS。 10+ 秒到 1 秒。谢谢!
  • MalwareBytes 实时保护我
  • 在 2020 年末,我运行了 acronis 真正的图像保护,排除了我的项目文件夹时间恢复正常
【解决方案4】:

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

【讨论】:

  • 我在 Windows 10 上使用 VS2015 并且遇到了同样的问题。我清除了 %temp% 和预取目录。然后我重置了 devenv.exe 设置,但他们没有帮助。然后我将省电设置从平衡更改为高性能,它起作用了。 CPU 开始使用 100%。它的 CPU 使用率没有增加超过 30%
  • 校园突然断电后,我遇到了 VS 2015 构建问题。构建解决方案需要很长时间。这就是使它起作用的方法。这种方法看起来很奇怪,但它确实有效。谢谢。
  • 出于好奇,我将电源计划改回平衡并开始构建解决方案,它再次卡住。然后改回高性能,它建立了。这似乎是我让 VS 工作的唯一方法。我很幸运能够生活在如此美妙的世界中,并在如此奇妙的领域工作。我每天都在见证奇迹。
  • uowwwwwwwwwwwwwwwww...我的构建速度很慢,这对我有用...此外,停止调试后我面临延迟,通过删除所有断点解决了这个问题(有许多停用的断点)...现在工作好多了...感谢您的回答...我相信此更改会给我带来其他性能改进..
  • 如果您有笔记本电脑,还要检查风扇设置。如果风扇不是 100%,即使 CPU 使用率是 100%,CPU 也无法充分使用
【解决方案5】:

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

【讨论】:

  • 请发布一些示例代码,而不仅仅是链接,以便在链接失效时您的答案仍然有用。
  • 这对我没有帮助。我看到它经常写入日志,但关闭它并没有帮助。
【解决方案6】:

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

【讨论】:

    【解决方案7】:

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

    【讨论】:

      【解决方案8】:

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

      【讨论】:

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

      对于非常缓慢的 Visual Studio(构建任何东西大约需要 1.5-2 分钟),我的解决方法是关闭无线网络。

      除了有线网络之外,我还启用了无线网络。我的电脑似乎试图使用无线连接连接到我们的本地服务器,但无线网络不可用,这导致了很长的延迟。

      【讨论】:

      • 您能否进一步说明这一点? -- 网络速度究竟如何影响 Visual Studio 的构建时间? -- 无论如何,我在台式机上遇到了上述问题(没有无线网卡)。
      • 这发生在很久以前,我不记得确切的细节,但大约是这样,当我连接无线网络时,由于某种原因,构建过程试图连接到网络驱动器并等待 Windows 的默认网络位置超时,然后再继续构建。当我关闭无线网络(不允许访问我们的网络驱动器)并仅使用有线网络(提供对网络驱动器的访问)时,构建过程变得非常快。
      • visual studio 尝试连接到 MS 服务器并下载一些信息。如果您的互联网连接处于关闭状态,则构建运行正常。
      【解决方案10】:

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

      【讨论】:

        【解决方案11】:

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

        【讨论】:

          【解决方案12】:

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

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

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

          欲了解更多信息,this thread 讨论了这一点

          【讨论】:

            【解决方案13】:

            转到工具>选项>“项目和解决方案”>“构建和运行”。现在将“MSBuild project build output verbosity”设置为“Normal”或“Minimal”,其他设置“MSBuild project build log file verbosity”相同。

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

            【讨论】:

              【解决方案14】:

              “Some time”大概有多长? (例如,小时?天?)

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

              【讨论】:

              • 不,大量的 RAM(例如 1.5Gb 使用 4Gb),所以很确定它不会破坏磁盘。 “某个时间”通常是重新启动后的第二次或第三次构建,可能在此之前进行了一些调试。在 Proc Explorer 中找不到任何有用的东西。唯一的“线索”是重新启动后,它可以正常工作一段时间。问题是,经过几次构建/调试会话后,什么会堵塞机器?谢谢
              • 我在 8 GB 和 16 GB 机器上都遇到了这个问题(VS 2010 上的 WPF 项目)(两种情况下都有超过 50% 可用,16 GB 是 2.2 GHz 四核使用 HT,8 GB 是 3.2 GHz AMD 六核)。
              • 很抱歉投了反对票,这是个意外,无法撤消。如果答案被编辑,可以恢复它。
              【解决方案15】:

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

              【讨论】:

                【解决方案16】:

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

                【讨论】:

                  【解决方案17】:

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

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

                  重启 Visual Studio 并检查性能。

                  希望这会有所帮助! 谢谢

                  【讨论】:

                    【解决方案18】:

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

                    实时保护

                    在 Visual Studio 中重新构建您的解决方案,记下它所花费的总时间并在任务管理器中观察以查看反恶意软件服务可执行文件是否似乎正在消耗大量处理器时间。假设您的构建速度更快并且 CPU 不那么繁忙,那么恭喜您,您已经确定了导致性能问题的原因之一。下一步是负责任地告诉 Windows Defender,不要完全关闭 Visual Studio。

                    【讨论】:

                      【解决方案19】:

                      就我而言,我使用项目目录中的“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"
                          },
                      ...
                      

                      【讨论】:

                        【解决方案20】:

                        由于我是通过 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

                        【讨论】:

                          【解决方案21】:

                          在 YourProject.csproj 中,在 project 标签的最后一行添加 target 标签

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

                          【讨论】:

                            【解决方案22】:

                            我已经更新了所有的 NuGet 包并且它工作正常!

                            【讨论】:

                              【解决方案23】:

                              我在 VS 上运行的任何命令或函数都存在同样的问题。禁用防病毒实时保护后,运行时间从 10 秒减少到 0.5 秒甚至更少。顺便说一句,有趣的是杀毒软件的行为会减慢 C# 的运行时间,但 C++ 完全没问题。

                              【讨论】:

                              • 虽然您的经历可能是真实的,但 OP 表示他们已经完全关闭了防病毒软件并且没有帮助。此外,他们还遇到了 C++ 方面的问题。不过,很高兴您能找到解决方案。
                              • 嗯,我从cmets上看,这个问题针对不同的PC有不同的解决方案(或者原因也是具体的杀毒类型,因为我的是“Avira Antivirus”)
                              猜你喜欢
                              • 2018-04-25
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2021-01-09
                              • 1970-01-01
                              相关资源
                              最近更新 更多