加载符号时,Visual Studio调试速度很慢

时间:2013-07-15 17:37:30

标签: asp.net-mvc visual-studio visual-studio-2012 iis-express

我的问题几乎与Visual Studio debugging/loading very slow相似,但我没有找到解决此类问题的方法。

我已经尝试了该问题中描述的所有内容,但是,第一次加载的符号速度非常慢。

与其他问题类似,在启动MVC项目时,我在“输出”面板中获得了几行,其中包含类似的内容:

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\02ba097f\ab73cbf7\App_Web__headerusermenu.cshtml.ee708ea.myhgafpb.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\02ba097f\ab73cbf7\App_Web__layoutcmsbase.cshtml.ce72eb6d.ovoanhe-.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\02ba097f\ab73cbf7\App_Web__notificationmessage.cshtml.5346933.9aei7ems.dll', Symbols loaded.

这些条目每个大约花费300到500毫秒,这些条目对我们项目中的所有部分视图都执行,这是相当可观的。

我在另一个问题中尝试了解决方案,但仍未获得任何快速响应时间。

这些是我们做过的一些测试:

使用IIS Express

  • 最初加载网站大约需要2分钟
  • 停止网站并重新开始大约需要1分45秒
  • 一旦网站运行,我按下加载所有符号(工具> Otions>调试>符号>加载所有符号),然后停止项目并再次运行,它需要更少,25秒。仍然,在项目未运行时禁用“加载所有符号”按钮,因此我第一次需要等到项目加载才能按下“加载所有符号”

使用Visual Studio Development Server

  • 最初开始,大约需要50秒
  • 停止项目并重新开始,大约需要20秒
  • 点击加载所有符号,停止项目并重新开始大约需要15秒

这是非常令人沮丧的,因为为了第一次加载项目需要花费很长时间。

除问题Visual Studio debugging/loading very slow中提到的那些可能有帮助之外的任何可能的解决方案?

9 个答案:

答案 0 :(得分:4)

在我的情况下,我在VS中打开了一个不属于我当前解决方案的文件(它恰好是一个XML文件,我用断点标记了以便快速参考)。当我删除这些特定断点时,问题就解决了。

答案 1 :(得分:2)

我在本地网络共享上托管项目时遇到了同样的问题。将其移至我的本地系统可将符号加载时间缩短90%!

答案 2 :(得分:1)

根据rkawano的评论 - 关闭Fusion Log有时可以解决这个问题(它对我有用)。我在阅读了以下article之后启用了融合日志,然后忘了它。一段时间后,我开始经历视觉工作室2013的显着减速。症状是VS 2013变得反应迟钝,特别是在结束调试会话时。它还将在加载项目或停止调试器时显示符号加载对话框(通常不会显示这些对话框)。

答案 3 :(得分:0)

您是否尝试绕过IIS Express并从本地IIS服务器运行该应用程序? url看起来像这样:localhost / {yourprojectname}。您第一次点击应用程序时可能仍然会加载缓慢,但之后它应该保持相当快速,因为每次要运行它时Visual Studio都不会启动应用程序。从本地IIS运行应用程序还允许您在启动调试器时保持Firefox打开,而不是每次都打开和关闭IE。

答案 4 :(得分:0)

转到工具>选项>环境>添加安全性 取消选中"允许添加组件以加载" 重新启动Visual Studio

答案 5 :(得分:0)

我有同样的慢速加载问题,但它只困扰一个沙箱解决方案。非常相似的分期和生产/复制解决方案工作得很好。因此所有这些环境调整的人都推荐无法解释它(当然,我还是试过它们。)然后我比较了.csproj文件,发现了一个可疑的看起来差异。在纠正之后,事情又恢复了正常。

答案 6 :(得分:0)

我尝试了所有解决方案,但似乎没有任何效果。我破解了我的符号设置 TOOLS&gt;选项&gt;调试&gt;符号,发现Cache Symbols in this directory设置为其他用户的目录,例如C:\Users\<not my name>\AppData\Local\Temp\SymbolCache

然后我将设置字符串清空,并删除了配置的任何其他pdb位置。然后按OK。

enter image description here

然后我开始构建并允许VS解决这些符号(20秒)。然后我停下来重新启动,并在没有加载符号的情况下启动。

我假设在某个地方我从其他用户导入设置。

答案 7 :(得分:0)

尝试以下任何一种方法...

  1. 仅启用我的代码
    转到工具>选项>调试>常规
    选中“仅启用我的代码”
    Enable Just my Code

  2. 本地缓存符号
    转到工具>选项>调试>符号 浏览到本地目录(确保它不在网络共享上) 点击“加载所有符号”或运行项目以充填缓存

    Cache Symbols

  3. 删除远程符号服务器

    选择远程符号服务器时,Visual Studio会为您提供following warning

    由于延迟,带宽或服务器的可用性,远程符号存储的性能可能会有所不同。通过选择启用此服务器时仅加载指定模块的选项,可以提高调试性能

    加载符号缓存后,取消选择远程符号服务器

    转到工具>选项>调试>符号 取消选择“ Microsoft Symbol Servers”以防止Visual Studio远程查询Microsoft服务器。 Deselect Microsoft Symbol Servers

进一步阅读

堆栈溢出

MS文档

答案 8 :(得分:-1)

由于加载符号缓慢,我的VS2013在调试时非常缓慢。我注意到,在缓慢加载期间,尽管我的应用无法访问网络,但网络使用率却很高。

作为一个实验,我拔下了以太网电缆,调试非常快。我的符号DownstreamStore位于C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ DownstreamStore。在Tools \ Debugging \ Symbols下,我清除了缓存,当我尝试退出时,收到一条消息,提示需要管理员特权才能继续。

可能是许可(自2013年以来已更改)导致了从Internet加载符号。我将目录更改为闪存驱动器上的另一个非管理位置,并进行了调试。第一次很慢,但是此后很快。