Visual Studio 2008: Шаг к следующей строке является очень медленным при отладке управляемого кода

По необходимости получает мой голос также. Я не использовал его на таких крупных проектах, но это - абсолютно горное тело в моей среде. Это также имеет впечатляющее резюме о крупных проектах, также.

[слух] я услышал, говорят, что Microsoft использовала его для Vista. [/rumor], По-видимому, это была настроенная версия для них, но это не становится намного больше, чем это.

12
задан Kevin Kibler 1 December 2009 в 15:10
поделиться

6 ответов

Скорее всего, у вас есть переменная в кадре стека вызовов, у которой есть дорогостоящий метод .ToString. В 2008 году данные для окна стека вызовов перестраиваются на каждом шаге, независимо от того, действительно ли окно отображается. Часть построения этого окна будет вызывать .ToString для значений, которые появляются в списке параметров, если они имеют переопределенный .ToString. Попробуйте отключить неявные вызовы .ToString и посмотрите, решит ли это проблему.

  • Инструменты -> Параметры -> Отладчик
  • Снимите флажок «Включить неявные вызовы .ToString»
13
ответ дан 2 December 2019 в 05:27
поделиться

Я обнаружил, что если у вас включена опция отладки неуправляемого кода, отладчику может потребоваться некоторое время для перехода между строками, даже если вы только отлаживаете управляемый код. Попробуйте отключить эту опцию ( Проект> Свойства> Отладка> Включить отладчики> Включить отладку неуправляемого кода ).

5
ответ дан 2 December 2019 в 05:27
поделиться

Однажды я столкнулся с медленной отладкой, поскольку я настроил VS для поиска файлов pdb в общей сетевой папке, которой больше не существует.

Проверьте здесь: Инструменты - параметры - Отладка - Символы - Расположение файла символов (.pdb)

1
ответ дан 2 December 2019 в 05:27
поделиться

Я слышал о подобных проблемах, если открыто окно «Авто». Попробуйте закрыть его и посмотрите, улучшится ли ваша производительность.

Если вы еще этого не сделали, вам, вероятно, также следует установить патч «Отладка и точка останова Visual Studio 2008 SP1» . Обратите внимание, что этот патч идет поверх SP1. В документации к патчу конкретно не говорится о наблюдаемой вами медлительности, но это довольно большой патч, и вам может повезти.

1
ответ дан 2 December 2019 в 05:27
поделиться

У вас настроено много выражений Watch? Они будут оцениваться после каждого шага, и если им потребуется время для выполнения, вы заметите это как задержку при шаге.

0
ответ дан 2 December 2019 в 05:27
поделиться

В моем случае отключение «прерывать все процессы при прерывании одного процесса» (Инструменты / Параметры / Отладчик) сокращало время «перехода» с 2-3 секунд до долей секунды.

Понятия не имею, почему эта опция так сильно повлияла на выполнение одного шага. Кстати, я полагаю, что отключение этой опции может вызвать проблемы, если вы используете потоки, которые не независимы друг от друга. .

3
ответ дан 2 December 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: