Проблема повільної налагодження у Visual Studio


87

У моєму екземплярі Visual Studio, навіть якщо я просто написав один рядок повернення в консольній програмі C #, це займе у мене хвилину після натискання, F5щоб виконати фактичний код (я маю на увазі час, який потрібно, щоб зупинитися на одному операторі return після натискання F5- я встановлюю точку зупинки у операторі return у mainфункції). Що не так? Чи є контрольний список?

Я використовую Visual Studio 2008 VSTS і налагоджую на Windows Server 2003 x64.


2
Тільки для того, щоб переконатися ... Скільки пам’яті у вас є у вас під час спроби запустити код? З мого досвіду VS - це “свиня пам’яті” ...
RSolberg

1
Що таке ваше обладнання? Visual Studio вимагає великих витрат диска та процесора, тому наявність бюджетної машини не матиме продуктивності.
Вільям Холройд

1
Наявність> 2-3 умовних точок зупинки погано обробляється VS ...
Саймон Бучан

У мене пам’ять 4G, і жоден інший процес не працює одночасно. Я просто перезапустив свою машину пару разів і той самий симптом. За тиждень до цього я не зустрічався з такими проблемами. Будь-які подальші ідеї?
George2

2
Усі вони перелічені у розділі Налагодження-> Windows-> Точки зупинки (Ctrl-Alt-B). Але ви б знали, чи зробили ви якусь ...
Саймон Бучан

Відповіді:


150

Можливо, вам доведеться видалити всі свої точки зупинки --- зауважте, що вам потрібно натиснути кнопку "Видалити всі точки зупинки" (або скористатися Ctrl+ Shift+ F9), а НЕ просто видаляти їх по черзі. Якщо Visual Studio зіпсував налаштування вашого рішення, останні не працюватимуть. Можливо, вам доведеться спочатку додати точку зупинки, щоб це працювало (розумно, так?).

Якщо найгірше доходить до гіршого, можливо, вам доведеться видалити .suoфайл і дозволити Visual Studio розпочати новий із нуля. Зауважте, що ви втратите свої персональні налаштування конфігурації рішення (лише для цього рішення, а не будь-якого іншого). Однак вам може знадобитися тимчасово перемістити / перейменувати файл, доки ви не визначите, чи це проблема; таким чином, ви завжди можете перенести його назад. Я бачив, як деякі інтернет-ресурси рекомендують також видалити (перемістити / перейменувати) .ncbфайл.


2
Привіт, zweiterlinde. Я вважаю, вузьке місце має стосуватися мережі. Коли я підключаю мережевий кабель, продуктивність дуже хороша при налагодженні. У вас є ідеї про те, чому? і як оцінювати далі?
George2

видалення файлу .suo розміром 14 Мб у мене спрацювало :) його зараз мізерні 150 Кб. проблема сталася після оновлення з VS2010 Pro до Ultimate
GreyCloud

+1. Велике спасибі, це спрацювало). Мій VS 2010 зайняв 2 хвилини, щоб розпочати проект на робочій станції. Га Яка помилка ....
Арсен Загрей

Я також видаляю файл .suo, але я робив це під час роботи Visual Studio. Коли я перезапустив Visual Studio, він знову дуже швидко приєднав налагоджувач, і, схоже, він зберігав більшість моїх налаштувань.
стидук

+1 Велике спасибі, справді. Тож у моєму випадку видалення файлу suo мені цілком спрацювало.
Дін Соо

26

Я це вже бачив. Спробуйте видалити всі точки зупинки, а потім встановіть потрібні. Хіт F5. Зараз це швидше?

Я щойно помітив, що ви згадали про налаштування функції налагодження джерела .NET. Спробуйте відключити це. Мережеве підключення до вихідного сервера Microsoft може бути повільним. Також вимкніть будь-яке підключення до сервера символів у меню ІнструментиОпціїНалагодженняСимволи .

Також спробуйте відключити «Увімкнути оцінку властивостей та інші неявні виклики функцій» у меню ІнструментиПараметриНалагодженняЗагальне .


1
У моєму вікні точок розриву в операторі повернення моєї головної функції є лише один. Будь-які інші контрольні списки?
George2

1
Додано більше речей, щоб спробувати. Сподіваюся, це допоможе.
m-sharp

Я видалив єдину точку розриву в операторі повернення моєї головної функції, але все одно дуже повільно запускати програму і зупинятись, займає близько хвилини. Будь-які подальші ідеї?
George2

Ось ще одна ідея, щоб відокремити вашу проблему. Спробуйте від'єднати мережевий кабель, перезапустіть Visual Studio та натисніть F5 у своєму проекті. Це щось змінює?
m-sharp

1
Спробуйте це вимкнути, з’єднання з вихідним сервером Microsoft може бути повільним. Також вимкніть будь-яке підключення до сервера символів у меню Інструменти> Параметри> Налагодження> Символи - Це спрацювало для мене
Yousuf Azad

19

Або видаліть файл .suo, який можна знайти поруч із файлом рішення (.sln). Це вирішило проблему, яка виникала у мене із сеансами налагодження, які тривали довгий час для запуску та зупинки.


+1 за збереження мого розуму (та збереження перевстановлення VS2010). Дякую!
Чак Ді

Це також посилання на рішення MSDN: social.msdn.microsoft.com/Forums/vstudio/en-US/…
ecoe

Підтвердження цього також стосується старих версій 2003.NET та 2005. В одній програмі було декілька точок зупинку і працювало нормально. Додано ще кілька точок зупинки ... 100% використання процесора та жахливе мерехтіння у VS під час налагодження. Закрито VS, видалено .suo, знову відкрито та налагоджено знову швидко.
AlainD

Це рішення, яке, на мою думку, працює завжди, коли VS стає занадто повільним з точки зору налагодження
Graviton,

Або перейменуйте файл .suo перед видаленням, щоб можна було повернутися до попереднього стану.
Пітер Мортенсен

12

У мене була ця проблема. Спробувавши всі перераховані поради та вилучивши всі розширення Visual Studio, ми нарешті з’ясували, що якимось чином увімкнено IntelliTrace. Вимкнення цього виправило все.

Як: увімкнути та вимкнути IntelliTrace


Це також вирішує проблему, якщо у вас є проект, який використовує SharpDX - він працював у мене, і тепер продуктивність графіки нормалізується.
коморра

У спеціальному випадку використання SharpDX та Debug-Build я мав такий самий ефект, але це було лише ввімкненою налагодженням DX. Якщо це не потрібно, знайдіть "DeviceCreationFlags.Debug" і вимкніть його
thewhiteambit

У VS2015 я зняв прапорець «Увімкнути Intellitrace» і натиснув «ОК». Пізніше виявили, що вам потрібно змінити значення з "Intellitrace та викликати інформацію" на "Лише події Intelllitrace"; якщо ви цього не зробите, "Увімкнути Intellitrace" ПЕРЕВІРЕНО!
smirkingman

Вирішив проблеми! (не вірте в коментарі MS: "Ця тема стосується лише Visual Studio 2010 Ultimate."). У мене є безкоштовна версія 2017 року, і це різко прискорює налагодження!
болота-

IntelliTrace у VS 2017 та новіших версіях - це лише функція для підприємств, тому це не вирішило моєї проблеми (оскільки у мене була лише версія VS 2017 Pro).
FoxDeploy

6

Чи багато у вас встановлених точок зупинку? Вони дійсно можуть уповільнити час запуску. Щоразу, коли новий модуль завантажується в адресний простір процесу, всі вони повинні перевірятися, чи дійсні вони.


У моєму коді користувацького режиму є лише одна точка зупинки. Але я згадав за тиждень до того, як використав функцію налагодження джерела у Visual Studio, щоб встановити точку розриву у внутрішньому коді .Net. Будь-який спосіб перевірити всі точки зупинки, включаючи внутрішні, встановлені мною?
George2

Жодних, але все ж повільних, подальших ідей?
George2

насправді, схоже, з вашим обладнанням має бути нормально, а всі інші пункти, які я б спробував, здавалося б, позначені іншими коментаторами. На цьому етапі я, мабуть, спробував би перевстановити Visual Studio - можливо, щось переплутано з установкою
1800 ІНФОРМАЦІЯ

Я перевстановив інший каталог, але все ще той же симптом. Будь-які подальші ідеї?
George2

6

Перейдіть до меню ІнструментиОпціїНалагоджувачСимволи та перевірте, чи встановлені загальнодоступні символи чи встановлені мережеві шляхи UNC . Також перевірте меню Інструменти * → ОпціїНалагоджувачЗагальне, щоб перевірити, чи встановлено вихідний сервер.

Все це може впливати на налагодження на основі повільної швидкості мережі або недоступності серверів. Час очікування 5 хвилин - це час очікування мережі.

Якщо в параметрах нічого не встановлено, перевірте, чи встановлено змінну середовища _NT_SYMBOL_PATH.


Дякую, це було для мене. Я іноді завантажував у вікно Модулі 1 або 2 файли символів, вказуючи на символи з наших збірок через UNC-шляхи, або рідше - на віртуальні машини, яких більше не існує. Не розумів, що всі ці шляхи збережено в налаштуваннях налагоджувача / символів.
Брайан

6

У мого колеги дуже повільно реагувала Visual Studio, і під час налагодження буквально зайняли хвилини.

Основною причиною виявилася антивірусна програма (Threatfire), яка збожеволіла під час роботи Visual Studio. Вбивство його відразу все виправило.


Я мав жахливий досвід налагодження роботи в Інтернеті, поки не відключив антивірус ESET. Після удару F5 час моєї відповіді з 2-3 хвилин до 2-3 секунд.
James Hulse

1
Призупинення ThreatFire на деякий час теж дуже допомогло мені - дякую! (Тимчасове вимкнення Avast! Теж трохи допомогло, але не настільки.)
Джон Кумбс

Malwarebytes був причиною моєї проблеми. Вихід з нього виправив повільність.
Бен Рубін

Я також використовую Malwarebytes ... Після виходу з нього налагодження VisualStudio відбувається набагато швидше. Запуск налагодження був раніше 15 секунд, зараз - 2 секунди) .. Дякую!
BlueDev

5

У моєму випадку зміна символу налагодження "Автоматично завантажувати символ для" параметра з "Усі модулі" на "Тільки вказані модулі" вирішило проблему. Ви можете змінити цю опцію в меню ІнструментиОпціїНалагодженняСимволи .


3

Інша причина плюс ... Як знайти проблему

Для мене це був варіант ShowOtherThreadIpMarkers . Значення 1 робить Visual Studio (2010) нестерпно повільним (3-5 секунд для кожного кроку налагодження. При значенні 0 він знову швидкий.

Що це за варіант? Я поняття не маю. Я не зміг знайти його через інтерфейс користувача Visual Studio. Я відмітив усі можливі варіанти налагодження там, і нічого не працювало.

Тож я перейшов до Імпорту / Експорту налаштувань та завантажив свої старі налаштування, які раніше зберігав, повертаючись назад у часі, поки Visual Studio знову не пришвидшився, потім порівняв файли vssettings ... тощо тощо.

Я хотів би зауважити, що якщо ви завантажуєте налаштування, коли ви перебуваєте в режимі налагодження, зупиненому на точці зупинки, вони вступають в силу негайно. Вам не потрібно зупиняти налагоджувач і перезапускати.


+1 Дякую, це була моя проблема також із веб-додатком C # у VS2015. Під час налагодження я вимкнув опцію "Показати нитки у джерелі" на панелі інструментів, і проблема зникла. Якщо ця опція недоступна на панелі інструментів, її можна знайти, клацнувши правою кнопкою миші будь-який потік у вікні Потоки.
Groo

2

З блогу ScottGu, на який посилається Тревіс: "Ще одна проблема, про яку я нещодавно чув, - це проблема, про яку кілька людей повідомляли, що стикалася з надбудовою Панель інструментів Google. З якоїсь причини це іноді може спричинити великі затримки при додаванні Visual Студійний налагоджувач у браузері. Якщо ви спостерігаєте великі затримки із завантаженням веб-додатків і встановили панель інструментів Google (або інші панелі інструментів), спробуйте видалити їх, щоб з’ясувати, чи це є причиною проблеми. "


У вас встановлена ​​панель інструментів Google? Навіть сказати «ні» корисно для майбутніх читачів цього питання.
Cat Zimmermann

Я відкрив IE, і жодна панель інструментів не відображається, чи означає це, що я не встановив панель інструментів і не вплине на Visual Studio? :-)
George2

2
Ого. Я думав, що це не має сенсу, але я просто видалив, і моя машина повернулася до придатного для використання режиму
orellabac

1
Ще один плагін, який звинувачують, - це LastPass. Це лише проблема з IE або плагін у будь-якому браузері може впливати на речі?
Деніз Скідмор

1
@DeniseSkidmore Ви дивовижні, хотілося б, щоб я проголосував більше одного разу. Всі ці інші рішення і нічого не допомагали ... тоді я прочитав ваш коментар, відключив надбудову IE LastPass і раптом знову швидко. Я підтвердив, що це проблема, повторно ввімкнувши надбудову, і вона сповільнилася. ДЯКУЮ!!!!
Льюс Терін,

2

Запуск під налагоджувачем для мене був приблизно в 10 разів повільнішим, ніж запуск без налагодження.

Спробувавши кожне запропоноване тут рішення, я пройшов усі налаштування налагоджувача та увімкнув / вимкнув, щоб побачити, чи це мало значення.

Для мене виявилося, що вимкнення оптимізації придушення JIT при завантаженні модуля в налаштуваннях налагодження значно покращило ситуацію.


1

Переконайтеся, що у вас немає застарілих мережевих зіставлення із серверами, які більше не існують (мережеві очікування вас вб'ють). Або скористайтеся чимось на зразок Process Monitor, щоб побачити, чи мережа (або інша помилка у файлі) здається блокується протягом тривалого часу.


Process Monitor - це крутий інструмент! :-) Але яку опцію в Process Monitor можна використати, щоб побачити, "якщо мережа (або інша помилка у файлі), здається, тривалий час блокується"?
George2

Я б шукав такі речі, як помилки під час спроби відкрити файл або скільки часу тривають операції (не забувайте, що є елементи даних, які ви могли не бачити, наприклад, "Тривалість", які ви можете вибрати в меню Параметри / Вибрати стовпці ...) . Використовуйте фільтри та основні моменти у своїх інтересах.
Michael Burr

Привіт, Майкл Берр, у Process Monitor ви маєте на увазі моніторинг самого процесу VSTS або моніторинг усіх процесів на машині?
George2

Я б точно розпочав лише з VSTS (devenv.exe), інакше ви завалите інформацією, яка майже напевно не є корисною.
Michael Burr

1
Ви хочете використовувати "Process Monitor", а не "Process Explorer". Див. Technet.microsoft.com/en-us/sysinternals/bb896645.aspx . Дві утиліти мають різні функції. Procmon буде відстежувати операції з файлами та реєстром. Procexp - це зручна утиліта, але не забезпечує такого типу трасування.
Michael Burr

1

Чи використовуєте ви сервер symbolsServer для завантаження символів для файлів DLL Windows?

Якщо так, то вимкніть це, оскільки це може зайняти деякий час, але я б не сподівався, що це спричинить великі затримки в базовій консольній програмі.

Інструменти меню → ОпціїНалагодженняСимволи .


Вміст порожній в Інструменти> Параметри> Налагодження> Символи. Будь-які подальші ідеї?
George2

1

Я знаю, що це стара тема, але для чого це варто ...

Я виявив, що якщо у мене відкрито окреме вікно Internet Explorer протягом тривалого часу, це може зайняти до хвилини, щоб розпочати налагодження. Закрийте всі вікна Internet Explorer, і налагодження починається негайно.


1

У моєму випадку панель інструментів Google уповільнювала мою налагодження.

gplus_notifications_gadget.html просто продовжував і перевантажував налагоджувач. Я хотів зберегти панель інструментів Google, оскільки регулярно користуюсь нею, тому я просто вимкнув кнопку сповіщення G + (маленька кнопка, крім кнопки профілю). Зараз це щасливо.


1

У мене була та сама проблема у Visual Studio 2010, коли введення коду було болісно повільним (від 3 до 10 секунд). Однак жодна із зазначених вище модифікацій налаштувань не зробила трюку.

Врешті-решт я знайшов оптимальне рішення, яке могло б працювати у всіх вищезазначених питаннях публікації: скинути всі налаштування, як описано тут (по суті меню ІнструментиПараметри імпорту та експорту , Скинути всі налаштування , із збереженням наявних налаштувань у файл (для повернення назад) )).

Спочатку ви можете захотіти зберегти певну частину своїх налаштувань. Наприклад, я спочатку зберіг свою кольорову тему (схожу на соляризовану), а потім відновив її після глобального скидання.


1

Для мене налаштування, яке знизило продуктивність (Windows 8 навіть повішена, за винятком переміщення миші), було зняти прапорець біля пункту «Розбивати всі процеси, коли один процес переривається» в меню ПараметриНалагодженняЗагальне .


1

Ще одна причина повільної роботи з налагодження Visual Studio ...

Давно я дозволив FusionLogпобачити, що спричиняє проблему прив'язки збірки.

Обов’язково вимкніть його після використання. Чому? Оскільки він записує багато даних реєстрації на диск, коли він увімкнений.

Це FusionLogключ до реєстру Window ( regedit.exe):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Зміна ForceLog, LogImmersiveі LogResourseBindingsзначення від 1 (включено) до 0 (відключено).


Це було те, що зі мною відбувалося. Ви також можете вимкнути журнал Fusion через свій графічний інтерфейс: hanselman.com/blog/…
Деніз

Ви можете побачити, чи це ваша проблема під час запуску Process Monitor, ви побачите всі звернення до файлу журналу Fusion.
Denise Skidmore

0

У мене була така проблема, але в моєму випадку вона не мала нічого спільного з точками зупинки. Саме ярлики коду я додав у вікні завдань:

http://www.customsoftwareframeworks.com/blog/longwaittimetoinsertoraddalineoftextbuginvisualstudio--windowlistwindow--onlywhenaddingandremovelines

Я впевнений, що є й інші способи, як ви могли побачити подібну проблему, але десь є помилка, яка спричинила цю проблему для мене ... видалення всіх моїх параметрів це виправило б, але це те, чого я не хотів робити. Отже, я налагодив це і написав про це у своєму блозі ... ваша проблема звучить як моя.


Посилання порушено: "Ресурс, який ви шукаєте, видалено, змінено його назву або тимчасово недоступний."
Пітер Мортенсен

0

Щось, що мені вдалося, це переконатися у відсутності умовних точок розриву. Крім цього, мені вдалося виправити повільну налагодження, просто перезапустивши Visual Studio і відкривши лише один екземпляр Visual Studio одночасно.


0

У мене була подібна проблема, і жодне з інших вказівок, здається, не допомагало. Я перезавантажився безрезультатно. Я видалив усі точки зупинки, видалив файл .suo, перевірив, що символи не завантажуються із зовнішніх джерел, і перевірив, чи не існує шляхів у недоступній програмі.

Потім я подумав очистити розчин. У вікні виводу я помітив, що C # IntelliSense повідомив про проблему під час очищення:

Не вдалося прочитати метадані з "{B0C3592F-F0D1-4B79-BE20-3AD610B07C23}" ("Система не може знайти вказаний файл."). IntelliSense може не працювати належним чином, доки рішення не буде перезавантажено.

У цьому випадку, коли ви насправді виявляєте повідомлення про помилку, воно повідомляє вам, як саме його вирішити. (Хороша робота з текстом помилки, погана робота з виявленням!) Я завантажив проекти рішення, а потім перезавантажив їх. Тоді я зміг успішно запустити чисте рішення . Це спрацювало, і налагоджувач теж.


0

Закриття вікна "Авто" покращило налагодження для мене у Visual Studio 2008 для великого власного рішення С ++.

Приховувати це не буде працювати. Його потрібно закрити.


0

Я зазнав того самого уповільнення та відключення від мережі, що вирішило проблему для мене, як зазначалося в деяких інших коментарях та відповідях (але, звичайно, це не ідеальне рішення).

Для мого випадку це одне просте змінення виправило моє рішення: у властивостях проекту на вкладці налагодження я вимкнув "Увімкнути процес хостингу Visual Studio" (я запускаю Visual Studio 2010).


-9

Отримайте більше пам’яті та швидший HD. Детальніше тут .


1
Я не думаю, що це проблема H / W, оскільки моє обладнання - це 4G пам'яті + 2 CPU (2.33G), чи достатньо цього? До речі: Я не страждав від цього за тиждень до цього, тому я думаю, що це повинні бути деякі проблеми з конфігурацією?
George2

2
+1 Корисна порада, не можу повірити, що люди проголосували проти. Хоча видалення вашого файлу .suo допомагає в 10 разів більше.
Andomar

1
ОП навіть не повідомив, яка їх специфікація. Якби ви порадили мені, ви порадили б мені отримати більше 32 Гб оперативної пам'яті і швидше, ніж мій і без того швидкий твердий стан.
Валамас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.