【问题标题】:VS2010 Debug entry very slowVS2010 Debug 入口很慢
【发布时间】:2010-07-14 18:55:00
【问题描述】:

当我从调试开始 (F5) 或附加到 ASP.NET 工作进程开始调试我的 Web 应用程序时,它会非常缓慢地从应用程序加载程序集,我可以在它们滚动时单独读取它们的名称VS2010的状态栏。

当我开始调试时,我看到 MSVSMON.exe 使用 50% 的 CPU 并且锁定在 50% 时,显然会填满一个完整的内核。还看到这被描述为 Visual Studio 远程调试监视器,我很困惑是否应该使用它,因为我正在调试我机器本地的所有内容。

如果可能与此相关,我正在运行通过 RDP 虚拟连接的环境。

主机:Server 2008 Enterprise R2 Dualcore Xeon 2.53ghz

虚拟实例:Win7 Enterprise 6gb ram 全处理器分配

这看起来正常吗?如果我在本地调试,MSVSMON 是否应该运行?

【问题讨论】:

  • 我在本地或远程、Web 或正常进程的调试方面没有任何性能问题。 VS 在 x32 上运行,远程机器运行 x64。

标签: debugging visual-studio-2010


【解决方案1】:

Menu.Debug.DeleteAllBreakpoints

为我工作。

【讨论】:

  • 我不知道为什么,但这也对我有用。从调试到完成网页从 20 秒缩短到 3 秒。但我想知道为什么!我在同一个项目中只有少数断点(从未被击中)。
  • 在 VS2010 中肯定有一个关于这个的错误以及它丢失的断点或其他东西。
  • 如果您按名称添加断点(中断功能),调试器需要扫描加载的每个 dll 的所有符号,以检查是否有任何内容与给定名称匹配。这需要所有时间,而不是错误。
  • 每次指令指针遇到该位置时都必须评估条件断点,我猜这意味着上下文切换大量。即使很简单,它们的性能也往往很糟糕。
【解决方案2】:

是的,调试 64 位程序时将使用 msvsmon.exe。由于 Visual Studio 完全是 32 位的,因此需要远程调试器来弥补差距。

没有任何理由认为减速是由于它是远程调试器造成的。可能会努力查找和加载 .pdb 文件。或者意外打开了混合模式调试选项,因此调试器还可以看到所有非托管 DLL 加载并为它们查找符号。当然,这些只是猜测。

【讨论】:

    【解决方案3】:

    在调试开始时搜索符号通常很慢,特别是如果您配置了远程符号选项之一,并且没有在 MS 服务器上没有符号的各种 DLL 上设置“忽略”。

    这些不仅可以是代码的第 3 方组件之类的东西,还可以挂钩由例如图形驱动程序注入的 DLL,因此值得关注正在尝试加载的内容。

    在开始调试时运行 Fiddler (http://www.fiddler2.com/fiddler2/) 将显示是否正在远程获取符号。

    即使没有为远程符号提取显式设置 VS(在工具->选项调试中),它仍将遵循 _NT_SYMBOL_PATH 环境变量 - 检查是否已设置,以及它指向什么。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,虽然这个解决方案对我没有用。最后,我必须进入 Tools->Options->Debugging->Symbols 并取消选中 Symbol file (.pdb) 位置,然后单击 Empty Symbol Cache 按钮。之后,调试就更好了。

      【讨论】:

      • 非常正确的观点,这不是我描述的确切场景,我看到它以每秒 1 左右的速度加载我的程序集,但如果你看到它加载你不拥有的程序集这将大大减少调试入口。使用符号源调试 .NET 代码的能力非常棒,但该功能只应针对特定需求打开,然后立即关闭。
      【解决方案5】:

      对我来说,问题是我安装了 PUP(可能不需要的程序),这降低了其他进程的速度。在 MSVSMON 多次显示此行为后,我意识到 Cltmng.exe 进程(来自 Search Protect by 管道)也占用了异常数量的 CPU,删除它解决了问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-07
        • 2013-08-03
        • 1970-01-01
        • 1970-01-01
        • 2020-09-15
        • 2016-10-29
        相关资源
        最近更新 更多