Потратив немного времени на размышления о том, почему мое приложение очень медленно выполняло конкретный сценарий с подключенным отладчиком, я обнаружил, что это было связано с наличием условной точки останова (условие которой никогда не выполнялось). Это кажется разумным, поскольку ЦП будет сигнализировать о точке останова, а VS необходимо будет оценить условие, прежде чем продолжить выполнение. Эти переходы должны быть дорогостоящими.
Я предполагаю, что точка останова в пути кода, который не выполняется, не влияет на время выполнения.
Итак, мой вопрос двоякий:
- Существуют ли какие-либо ресурсы, которые могут количественно оценить стоимость, связанную с условными точками останова, и если да, то можно ли что-нибудь сделать, чтобы уменьшить их стоимость оценки во время выполнения?
- Есть ли какие-либо затраты, связанные с «отключенной» точкой останова? Под отключенным я подразумеваю, что VS отображает маркер точки останова в желобе с полым кругом.
Конечно, если что-то, что я упомянул выше, не имеет смысла, пожалуйста, укажите мне правильное направление.