gpt4 book ai didi

visual-studio-2013 - Visual Studio 2013 + TFS = 慢

转载 作者:行者123 更新时间:2023-12-03 00:56:32 25 4
gpt4 key购买 nike

我正在使用最近重新安装的带 SSD 的笔记本电脑。我正在使用带有 TFS 的 Visual Studio 2013。

我的问题是,当我开始和结束合并或比较时,我需要等待大约 20 - 25 秒。结束 Web 调试 session 的等待时间也是大约 30 秒。

我没有特殊配置。 TFS 服务器在我们的局域网中,我通过以太网连接。我没有在 TFS 设置中配置代理。

我已经尝试了以下方法:

  • 已删除的 suo 文件
  • 将设置添加到 Visual Studio 2013 应用程序配置以禁用代理。
  • 在本地存储符号
  • 重新添加映射
  • 重新添加工作区

  • 我对 TFS 之外的项目没有这个问题。我的同事没有这个问题。

    最佳答案

    有许多您还没有尝试过的选项可供您使用:

    本地工作区与服务器工作区

    当你有一个大工作区(意味着你的工作区中有很多文件)或者当你的工作区包含很多二进制文件(例如 NuGet 包)时,当它被配置为“本地工作区”时,它可能会显着减慢。本地工作区将原始文件(TFS 服务器知道的最新版本)保存在磁盘上的 gzip 文件中。每当大量文件发生更改时,都会将它们与最后一个已知副本进行比较,并根据它们被 checkin 或 checkout 。

    另一方面,服务器工作区只是查看文件的“只读”位。如果它有一个,TFS 将假定它没有改变。如果它没有,TFS 假定它已 checkout 。

    本地工作区有其优势,尤其是当您经常离线工作时,但在上述情况下它们可能会导致严重的速度减慢。

    尝试将您的工作区配置为服务器工作区,看看是否能解决问题。

    enter image description here

    默认情况下,Visual Studio 会在引入此功能后创建本地工作区。

    删除大型二进制文件,并适本地确定工作区的范围

    如果您想使用本地工作区,您可能需要更新您的解决方案以确保未检入 NuGet 包、隐藏工作区中的大型二进制文件并且您只获取真正需要的文件(例如创建新的工作区)适用于不同的分支)。

    要隐藏文件,请编辑您的工作区映射并添加您不想检索的文件夹并将操作从“事件”设置为“隐藏”,或者您可以直接从源代码管理资源管理器的上下文菜单中隐藏,您可以在 Advanced 下找到它,然后在 Cloak 下找到它。

    不要检查二进制引用,而是尝试查找相应的 NuGet 包,或自己创建它们。当涉及到版本控制系统时,大型二进制文件总是有害的,因为您永远无法合并它们,它们基本上只是坐在那里。

    缓存损坏

    Team Explorer 客户端将缓存保存在以下位置:

    C:\Users{user name}\AppData\Local\Microsoft\Team Foundation{version}\Cache



    由于某种原因,这可能已损坏。清除所有子文件夹和 VersionControl.config可能是让它再次工作的最后手段。

    修复 Visual Studio 并关闭扩展

    有时 Visual Studio 本身可能会被所有修补程序、服务包和其他安装的东西弄糊涂。甚至不提及可能影响其行为的所有扩展。

    某些扩展会严重减慢与源代码管理的交互。例如,前面提到的源代码管理资源管理器扩展具有更改磁盘上文件日期的选项,这可能导致“获取”操作在最后停止数秒。

    关闭此类扩展以查看没有它们的行为是否仍然存在,这始终是您应该做的事情。修复 Visual Studio 并重新应用最新的更新包也可以解决此类问题。

    可疑扩展包括那些:
  • 扩展调试器
  • 扩展团队资源管理器
  • 扩展源代码管理资源管理器

  • 关闭 Windows 代理自动检测

    当 Windows 代理自动检测打开时,我看到了一些奇怪的行为,不是在所有网络上,不是在所有代理服务器上。代理检测可能会导致长时间等待,因为它试图找出要连接的代理。

    尝试禁用代理脚本和自动检测,如果您依赖代理,请尝试直接在经典代理配置屏幕中进行设置:

    enter image description here

    尝试以艰难的方式找到问题

    启用 client side tracing as described here .在 devenv.exe.config包括以下代码段。它会将 TFS 周围发生的所有事情转储到日志文件中。查明正在发生的事情可能会很痛苦,但它会为您提供大量信息:
    <system.diagnostics>
    <switches>
    <add name="TeamFoundationSoapProxy" value="4" />
    <add name="VersionControl" value="4" />
    </switches>
    <trace autoflush="true" indentsize="3">
    <listeners>
    <add name="myListener" type="Microsoft.TeamFoundation.TeamFoundationTextWriterTraceListener,Microsoft.TeamFoundation.Common, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" initializeData="c:\tf.log" />
    <add name="perfListener" type="Microsoft.TeamFoundation.Client.PerfTraceListener,Microsoft.TeamFoundation.Client, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </listeners>
    </trace>
    </system.diagnostics>

    您可以在启用事件跟踪日志记录的情况下运行 Visual Studio。如果插件行为异常,它通常会在 ActivityLog.xml 中显示信息。 .要启用这种类型的跟踪,请使用 /log 启动 Visual Studio命令行选项。日志将被丢弃在这里:

    %AppData%\Microsoft\VisualStudio\12.0\ActivityLog.XML



    在最坏的情况下,您可以将一个 Visual Studio 或分析器(或 Intellitrace 命令行工具)附加到 Visual Studio 并收集 Visual Studio 内发生的所有事件的日志。

    您可以尝试使用 Process Explorer 监控您的系统查看 IO 或网络访问是否会减慢您的速度。

    关于visual-studio-2013 - Visual Studio 2013 + TFS = 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28022712/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com