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

我使用For循环如下:

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

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

enter image description here

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

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

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

或类似的,只是重建你的应用程序.

翻译自:https://stackoverflow.com/questions/32391419/visual-studio-slow-down-the-execution-when-use-conditional-break-points

转载注明原文:c# – 使用条件断点时,Visual Studio会降低执行速度