Использование условных точек останова может значительно снизить производительность.
Я провел некоторый тест для кода, выполнение которого заняло + - 500 мс. С условной точкой останова это заняло минут .
Решением этой проблемы является использование отладчика вручную.
if (variable == value) { System.Diagnostics.Debugger.Break(); }
При использовании этого подхода нет снижения производительности, единственным замедлением будет сравнение между переменной и значением.