【问题标题】:Visual Studio incredibly slow when renaming files重命名文件时,Visual Studio 速度非常慢
【发布时间】:2018-07-26 22:00:05
【问题描述】:

我有一个包含 99 个项目的中型解决方案,最近开始出现异常:

1) 如果我尝试通过解决方案资源管理器重命名文件,VS 看似会挂起,但经过很长时间(10 分钟以上)后它会完成重命名操作。

2) 我今天还注意到,在调试和发布模式之间切换似乎也冻结了 VS。到目前为止,我还没有让它运行足够长的时间来看看它是否真的完成了。

我已经尝试过 Visual Studio 2012 和 2013,并且都出现了相同的问题,因此这似乎表明问题可能与 Visual Studio 无关。我试图检查事件日志中是否有任何内容,但我没有任何反应。我也重新启动并运行了 checkdisk,但它没有发现任何问题。

在配备 8GB RAM 和新 SSD 的高规格笔记本电脑上运行 Windows 7 Professional

更新:显然,如果我重命名了一次文件,我可以立即继续重命名它(以及解决方案中的其他文件)。当我重新启动VS时,它又变慢了。

更新 2:我让计算机整夜运行以尝试从 Debug 切换到 Release,并且在我离开工作和回到这里之间的 14 小时内成功地做到了。

【问题讨论】:

  • 您在使用 Team Foundation Server 吗?您是否在 TFS 中使用服务器工作区?
  • 我们将 TFS 用于其他一些解决方案,但这个使用 Git。
  • 有趣; Resharper 呢?
  • 我的一位同事(正在使用它)正在使用它,但我还没有安装它。
  • 我的解决方案中只有一个项目有同样的问题。重命名需要 1-2 分钟。可笑的,视觉工作室 2015!

标签: visual-studio-2012 visual-studio-2013


【解决方案1】:

如果您使用带有“本地”工作区而不是“服务器”工作区的 TFS,Visual Studio 重命名文件的速度可能会非常慢,并且 TFS 存储库中包括不同版本的文件总数超过 10,000 个。

与 Microsoft 的建议相反,我建议使用服务器工作区而不是本地工作区以获得更好的性能。本地工作空间还有其他一些缺点,唯一的优点是能够在 TFS 存储库关闭时工作。考虑到如果您无法连接到 TFS,您可能无法连接到您的 LAN,而且在这种情况下您几乎无能为力。

要在 Visual Studio 2015 中更改为 TFS 的服务器工作区,

  1. 在 VS 中点击 File --> Source Control --> Advanced --> Workspaces

  2. 在打开的对话框中,选择您的工作区并单击编辑...

  3. 单击高级...(选择哪个映射无关紧要)。

  4. 在位置下,选择服务器,然后按确定。

根据存储库的大小,切换到服务器可能需要十分钟或更长时间。

一旦完成,重命名文件应该几乎是即时的。

【讨论】:

  • 我们在这里使用本地工作空间有其他原因(即因为这是老板想要的)。我明白了你的观点,我赞成你对为什么需要这么长时间的洞察力,但不是每个人都可以改变他们的工作空间类型。
  • 祝福你,我的儿子!这行得通。重命名/移动每次都需要 1-2 分钟。这使它下降到5-10秒。对我来说仍然太慢,但我可以忍受它。衷心感谢! 2017 年工作。
  • 我们有一些团队在其他国家工作,他们通过 VPN 连接到我们的服务器以连接到 TFS。我不敢在我们的场景中尝试这个,因为我很确定它不会很好地结束:(。在这方面对微软真的很失望
  • 完美,这行得通!...我正在失去理智(也许已经失去理智了)。
  • 虽然这可行,但请注意,这也意味着您现在只能在 Visual Studio 中编辑文件。例如,Excel 现在无法保存文件,因为所有文件现在都是只读的。希望我们可以尽快迁移到 git...
【解决方案2】:

在测试时,我尝试将其中一个项目设置为在不同的服务器上构建,无论是在调试模式下还是在发布模式下。虽然我已经清理了两者,但显然我只是在 Debug 配置下这样做了。

显然同时该服务器已经决定它讨厌我的机器,这使我的机器在等待它时冻结。

关闭 Visual Studio 并手动编辑 .csproj 文件即可解决问题。

【讨论】:

    【解决方案3】:

    不幸的是,99 个项目对于 Visual Studio 来说不是一个中等规模的解决方案,而是一个非常大的解决方案。 Visual Studio 根本无法很好地扩展到这种规模的解决方案,您在这里看到了它的效果。

    改善这一点的唯一方法是将您的解决方案分解为几个较小的解决方案。

    【讨论】:

    • 即便如此,重命名引用次数少于 10 次的文件怎么会花费超过 10 分钟?从事同一解决方案的其他开发人员都没有遇到相同的事情。
    • @PetterBrodin 老实说,如果不进行分析,这很难说。 Visual Studio 运行缓慢的原因有很多(其他扩展、缓存数据、设置中的小调整、FS 问题)。如果不进行分析,很难说这里会发生什么,我只能猜测。我的第一个猜测是文件重命名会触发语义类重命名,并且跨 99 个项目的重命名会导致速度变慢
    • 通过“语义类重命名”,您是指弹出的对话框并说“您正在重命名文件。您是否还希望在此项目中对代码元素的所有引用执行重命名[班级名称]”?该对话直到 10 分钟后才会出现,当我点击“否”时,它似乎立即完成了重命名。
    • @PetterBrodin 这意味着它很可能需要 10 分钟来计算是否可以进行语义重命名(在对话之前检查)。
    • 知道是什么原因造成的吗?显然我也可以在 Debug 和 Release 之间切换,只是需要很长时间。
    【解决方案4】:

    基于@Daniel Barbalace 的回答,我的问题确实与 TFS 有关,但我无法切换到服务器工作区。我最终做的是删除到我目前不在工作的任何分支或项目的映射。没有神奇的数字,但是一旦我似乎得到了 50,000 个文件(全局用于 TFS 文件夹),重命名突然从 2 多分钟缩短到 3-5 秒。

    【讨论】:

      猜你喜欢
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 2016-05-21
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多