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

我使用For循环如下:

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

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

在此处输入图像描述

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

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

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

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