使用条件断点时,Visual Studio会降低执行速度

时间:2015-09-04 06:27:07

标签: c# vb.net visual-studio visual-studio-2012

使用For循环如下:

 for (int i = 0; i < 1000; i++)
    {
        int mod = i % 1795;
       //Do some operations here
    }

它工作正常,但是当我设置一个断点并将条件应用为mod=150时,它会减慢执行速度。为什么会这样?添加这样的条件断点时实际发生了什么?

enter image description here

1 个答案:

答案 0 :(得分:17)

条件断点不是硬件支持的东西;处理器仅支持无条件断点。发生的事情是,当您创建条件断点时,调试器会在您的代码中插入一个无条件断点。当无条件断点被命中时,调试器会评估您的条件,如果失败则只恢复执行。由于断点位置的每次传递现在都需要停止并涉及调试器,因此代码运行得慢得多。

根据代码执行的频率以及构建代码所需的时间,通常可以更快地添加

if (your condition)
{
    System.Diagnostics.Debugger.Break();
}

或类似,只需重建您的应用。