Отладка иногда очень медленная - PullRequest
10 голосов
/ 30 апреля 2009

Я использую VS2008, в обычном решении среднего размера.

Иногда шаг отладки становится очень медленным. Замок отображается на каждой вкладке файла для каждого «шага» (F10 / F11), и это может занять до двух секунд на каждый шаг. Это делает отладку очень раздражающей и медленной. Кто-нибудь видел эту проблему?

Ответы [ 17 ]

20 голосов
/ 11 февраля 2010

В VS 2008 я заметил, что если на панели инструментов отладки выбрана кнопка «Показывать потоки в источнике», шаг может быть как минимум в 10 раз медленнее.

Я также заметил, что если вашему приложению требуется много времени для запуска в режиме отладки, это можно решить, если просто «Удалить все точки останова» в меню «Отладка». Это решило меня досадную проблему, хотя в то время у меня была лишь небольшая точка останова.

Сайлас

10 голосов
/ 30 апреля 2009

Попробуйте отключить параметр «Включить оценку свойства…» в параметрах отладчика, это должно значительно ускорить отладку (подробнее: Исправлено: ускорение отладки с помощью Visual Studio ):

alt text
(источник: flickr.com )

7 голосов
/ 24 августа 2011

Отключить отображение потоков в источнике в Visual Studio. и закройте окно трассировки стека вызовов.

Disable Show Threads In Source. after Press debug Button

5 голосов
/ 06 января 2012

В дополнение ко всем вопросам, упомянутым выше.

Вкладка «Разборка» (открывается в фоновом режиме) замедляет отладку на 1-2 секунды за шаг. (Не уверен, что так всегда бывает).

3 голосов
/ 03 апреля 2013

У меня была такая же проблема, особенно при отладке приложений со многими потоками.

Это было вызвано функцией «Показывать потоки в источнике».

Подробнее см. По следующей ссылке:

Код проекта: Показать темы в источнике

Исправления производительности Visual Studio за один шаг

После отключения этой функции проблема была исправлена.

1 голос
/ 06 апреля 2018

Отключите «Показывать потоки в источнике», если он включен, а также закройте окна «Параллельные стеки», «Задачи» и «Потоки GPU», если они открыты. Это заставляет отладчик обходить стек вызовов для каждого потока в процессе.

enter image description here

1 голос
/ 16 марта 2018

Принятый ответ вряд ли актуален или полезен!

Вот некоторые возможные проблемы, которые могут сделать отладку чрезвычайно медленной:

  • «Показать темы в источнике» (см. Screensht). Если у вас приложение с многопоточностью, вы не сможете отлаживать его, если эта опция включена. Эта опция пытается показать в той же позиции выполнения файла других потоков, если они также выполняют тот же код. Таким образом, если у вас много потоков, отладчик должен проверить все потоки, где они находятся. Если у вас много потоков, это может сделать каждый шаг с отладчиком чрезвычайно медленным. enter image description here
  • Множество условных или даже регулярных точек останова. Особенно, если они есть в некоторых встроенных функциях некоторого заголовочного файла.
  • «Показать внешний код», включенный в стек вызовов, также замедляет работу.
1 голос
/ 14 декабря 2013

Есть много вещей, которые могут привести к замедлению работы Visual Studio. Чрезмерные точки останова и Show Threads in Source, вероятно, являются двумя наиболее распространенными, но вам не важно, что является наиболее распространенным, вам важно, что замедляет Visual Studio для * you *.

Таким образом, если удаление точек останова и отключение функции «Показать потоки в исходном коде» не работает, необходимо выполнить профилирование Visual Studio. Это позволяет вам находить проблемы с производительностью, характерные только для вашей ситуации. Объяснение того, как это сделать (что решило две отдельные проблемы производительности Visual Studio), можно найти здесь:

http://randomascii.wordpress.com/2013/03/03/visual-studio-single-step-performance-fixes/

Более подробные исследования проблем производительности в чужом коде подробно описаны здесь:

http://randomascii.wordpress.com/category/investigative-reporting/

0 голосов
/ 16 апреля 2015

Еще одна причина замедления одного шага - использование Intellitrace (доступно только в Ultimate). Чтобы отключить это, Инструменты | Варианты | IntelliTrace. Снимите флажок Включить IntelliTrace.

0 голосов
/ 22 февраля 2017

Если у вас есть антивирусный сканер (с включенным сканированием в реальном времени), проверьте, является ли C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe* исключенным из проверки.

В моем случае отладка стала очень медленной после развертывания нового антивирусного сканера в масштабах всей компании. Через некоторое время мы выяснили, что виновником было сканирование в реальном времени файла msvsmon.exe.

* изменить путь в соответствии с вашей установочной папке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...