使用VS调试MSVSMON.EXE非常慢

时间:2014-04-02 14:05:43

标签: asp.net visual-studio debugging iis

我正在尝试使用Windows 7上的IIS 7.5从Visual Studio 2013调试ASP.NET Web应用程序。调试过程非常慢,每页加载大约需要60-90秒。我注意到,当一个页面加载时,MSVSMON.EXE(Visual Studio远程调试监视器)在我的四核机器上保持25-30%的CPU,我怀疑它是罪魁祸首。

在另一台装有Windows 8和IIS 8.5的电脑上,使用几乎毫无意义的MSVSMON,调试速度要快得多。我试图模仿前一台机器的Visual Studio和IIS的每一个调试设置,但调试仍然很慢,MSVSMON仍然达到高CPU使用率。

为什么会这样?我该怎么做才能解决我的问题并降低CPU使用率?

3 个答案:

答案 0 :(得分:12)

当我在经常运行的代码中设置条件断点时,我遇到了这种情况。尝试暂停调试器只会导致Visual Studio ...什么都不做(除了灰色的暂停菜单选项)。

Visual Studio远程调试监视器在四核系统上占用了大约30%的CPU。

删除条件断点解决了这个问题。

答案 1 :(得分:1)

您是否在两台计算机上调试相同的应用程序?如果没有,有一点要检查的是,使用II7.5 / Windows 7应用程序与win8 IIS 8.5应用程序抛出了多少异常 - 调试器对每个异常都做了相当多的工作,因此对慢速有放大效果-down。

如果这是问题,您可以尝试关闭调试 - >输出窗口 - >异常消息,这应该有所帮助。当然,如果你有一个应用程序抛出足够的异常导致这种速度减慢,并且你有能力重新编写代码以减少在非特殊情况下抛出的异常数量,那将有助于同样。

如果失败了,您可能会尝试关闭所有输出设置和IntelliTrace,因为所有这些都可能会影响性能,如果解决了问题,您可以逐个将它们重新打开以找出罪魁祸首的位置 - 即使它们是完全相同的应用程序,在版本之间有足够的变化,调试器必须处理的事件可能会大不相同。

HTH

答案 2 :(得分:1)

此解决方案(归功于David W Gray)值得单独回答。

尝试禁用IntelliTrace(Debug => IntelliTrace => Open IntelliTrace Settings...