Отладка / загрузка Visual Studio очень медленная

505

Я в конце концов. Visual Studio, как правило, мучительно медленно отлаживает или просто загружает («запускает без отладки») мои сайты ASP.NET MVC. Не всегда: сначала проекты загружаются красиво и быстро, но как только они загружаются медленно, после этого они всегда будут загружаться медленно. Я мог ждать 1-2 минуты или больше.

Моя настройка:

В настоящее время я использую Visual Studio 2012 Express , но у меня была такая же проблема и в Visual Studio 2010 Express. Мое решение хранится на сетевом диске; в частности, это мои документы, перенаправленные на сетевой диск, если это имеет значение. (Это не должно быть. В некоторых случаях мой сайт загружается очень быстро при такой настройке.)

Обычно я загружаю в Internet Explorer 9, но та же проблема возникает в Firefox.

Это может произойти в любом проекте ASP.NET MVC, над которым я работаю, и, кажется, вращается вокруг наличия DisplayTemplates, что делают все мои проекты ASP.NET MVC. И это все C # и Razor, если это имеет значение.

Симптомы:

Система будет загружать мои символы сотни раз. По существу, следующее, но есть как минимум 300 таких строк, каждая из которых имеет несколько отличающиеся файлы DLL для одного и того же CSHTML:

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.xighmhow.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.cv5hktkf.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.1o77hs8i.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.jja-77mw.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.l_e9ev_s.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.b4n59gom.dll', Symbols loaded.

В приведенном выше у меня есть три DisplayTemplates: «Контакт», «Расположение» и «StatusCode». Похоже, что IIS загружает символы дважды каждый раз, когда вызывается шаблон отображения. Таким образом, если я отображаю таблицу из 100 записей, которая вызывает все три из этих шаблонов отображения, то загружается 600 отдельных символов.

Это тоже не быстрая операция. Просматривая файлы журнала, которые генерирует IIS, для загрузки каждого символа требуется около 200 мс. Таким образом, супер-длинные задержки.

Что я пробовал:

  • Отладка или выпуск версии, это не имеет значения.
  • Помещение моего проекта на полную реализацию IIS на веб-сервере запускает его очень быстро, без проблем.
  • Cassini, IIS Express 7.5 и IIS Express 8.0 имеют проблемы.
  • Удалить все точки останова ничего не делает.
  • Чистый раствор или удаление .suo тоже ничего не делают.
  • Если я восстановлю IIS Express, или удалю My Docs\IISExpressпапку, или восстановлю / переустановлю Visual Studio → проблема МОЖЕТ исчезнуть, но только на некоторое время, прежде чем она вернется обратно.

Любой совет вообще приветствуется.

Чтобы ответить на дополнительные вопросы, да, моя машина определенно имеет мощность. Раздражает то, что один и тот же проект, НИЧЕГО не измененный, иногда может загружаться очень и очень быстро, обычно после того, как я чиню IIS Express и удаляю My Docs\IISExpressпапку. В конце концов «что-то» происходит, и до загрузки снова остается 2 минуты. То, над чем я работаю, не является сложным проектом. Никаких внешних библиотек или зависимостей, и мой VS.NET не имеет никаких надстроек вообще.

Следует отметить, что эта машина имеет Symantec Endpoint Protection, которая в прошлом вызывала хаос. Но прямое отключение (хорошо быть администратором) не решило проблему.

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

Step into: Stepping over non-user code 'System.Threading.WaitHandle.InternalWaitOne'
Step into: Stepping over non-user code 'System.Threading.WaitHandle.WaitOne'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCapture'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch'
Step into: Stepping over non-user code 'System.Web.Compilation.AssemblyBuilder.Compile'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.bciuyg14.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.CompileWebFile'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultInternal'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.Find'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.Html.TemplateHelpers.ActionCacheViewItem.Execute'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.kwj3uqan.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.RuntimeType.CreateInstanceSlow'
Step into: Stepping over non-user code 'System.Web.Mvc.DependencyResolver.DefaultDependencyResolver.GetService'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerViewEngine.DefaultViewPageActivator.Create'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerCompiledView.Render'

Похоже, Visual Studio перекомпилирует мою displaytemplate каждый раз, когда он вызывается, что снова сотни раз. Моя теория заключается в том, что Visual Studio компилирует файл, сохраняет его на общем сетевом ресурсе, затем сетевой ресурс каким-то образом устанавливает новое время, и Visual Studio думает, что файл изменился, и, таким образом, Visual Studio перекомпилирует его снова. Только теория, хотя; Я действительно понятия не имею.

Например, у меня есть автономные файлы (это настольный компьютер в офисе; мне было все равно). Завтра я собираюсь отключить, перезагрузить компьютер и повторить попытку.

Плюс, перемещение моего проекта, как есть, в локальный C: исправляет это. Он загружается очень быстро. Но это не идеально в рабочей среде. Я теряю предыдущие версии, мой код не копируется вообще, если я не копирую его вручную, и он больше никому не передается.

Я могу обойтись копированием его назад и вперед из C на общий сетевой ресурс, если это произойдет. Гораздо неприятнее ждать две минуты для каждой загрузки страницы.

Ber'Zophus
источник
У меня много вопросов: а как насчет машины, на которой вы работаете? Достаточно ли у него мощности для того, что вы пытаетесь сделать? Есть ли у вас сторонние плагины? Какой у вас антивирус?
непостоянная пантера
1
Обновил мой вопрос с дополнительной информацией.
Бер'Зофус
Удаление автономных файлов только казалось исправлением. Некоторое время он работал отлично, затем проблема вернулась. Но у меня есть другой возможный ответ. Обновление моего решения.
Бер'Зофус
Во-вторых, у меня возникли серьезные проблемы с запуском ThreatFire. Временное отключение ускорило отладчик, по крайней мере, в сотни раз. Отключение моего основного AV (Avast!) Только немного помогло.
Джон Кумбс
@JohnSaunders Вы пробовали запустить его в режиме администратора ?: stackoverflow.com/questions/36322440/…
Роберт Ошлер

Ответы:

650

Вот как я решил проблему «медленной загрузки символов» в Visual Studio 2012:

  • Зайдите в Инструменты -> Параметры -> Отладка -> Общие

  • Проверьте флажок рядом с «Включить только мой код».

  • Перейдите в Инструменты -> Параметры -> Отладка -> Символы

  • Нажмите кнопку «...» и создайте / выберите новую папку на локальном компьютере для хранения кэшированных символов. Я назвал мой «Кэширование символов» и поместил его в Documents -> Visual Studio 2012.

  • Нажмите «Загрузить все символы» и дождитесь загрузки символов с серверов Microsoft, что может занять некоторое время. Обратите внимание, что кнопка «Загрузить все символы» доступна только во время отладки.

  • Снимите флажок рядом с «Серверы Microsoft Symbol», чтобы запретить Visual Studio удаленно запрашивать серверы Microsoft.

  • Нажмите «ОК».

Отныне загрузка символов должна быть намного быстрее.

Обратите внимание, что при внесении каких-либо изменений / загрузок в сборки Microsoft вам может потребоваться вернуться в диалоговое окно «Символы» и снова «Загрузить все символы».

Зеб Киммел
источник
31
Боюсь, я не исправлюсь. Это было бы хорошим решением для тех, кто вращается вокруг проблем с символикой Microsoft. К сожалению для меня, моя проблема, кажется, вращается вокруг моих собственных символов. Эти символы уже кэшируются локально и по какой-то причине скомпилировали сотни плиток всего за одну загрузку страницы.
Ber'Zophus
8
спасибо за этот совет одна проблема у меня здесь, кнопка загрузки всех символов отключена для меня какие-либо идеи?
Крис МакГрат,
14
@ChrisMcGrath попробуйте эту ссылку social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/… . Кстати, спасибо за отличный ответ
Bobby Tables
16
даже после выполнения ваших действий кнопка «Загрузить все символы» скрыта, и я не могу нажать на нее. Что мне теперь делать? Я использую VS Express 2012.
Химаншу Аггарвал
86
Вот решение для тех, у кого кнопка «Загрузить все символы» отключена: кнопка доступна только во время отладки.
Gwynnbleid1
114

Отключение intelliTrace исправило это для меня.

В Visual Studio Инструменты -> Параметры -> IntelliTrace

Затем снимите флажок «Включить IntelliTrace».

Отключить IntelliTrace в Visual Studio 2012

осел
источник
2
У меня была эта проблема при прохождении одного из моих юнит-тестов. Потребовалось около 300 секунд при включенном intellitrace и около 14 секунд при его выключении. Это исправление действительно работает для меня.
Paul Bullivant
2
Улучшен мой запуск с 25 секунд до 6. Я думаю, что это очень помогло, потому что я запускал много собственного кода при запуске приложения
Джеймс Эллис-Джонс
2
Черт возьми ... От 1 минуты до 10 секунд. Он выбран по умолчанию в VS2012 Ultimate. Осторожно, ребята
Кевин Клоет
7
Не могу найти Intellitrace в Инструменты => Параметры. .. у меня vsComunity 2015
Ширеф Хатаб
8
В Visual Studio 2015 Intellitrace существует только в VS 2015 Enterprise Edition.
HK1
78

Ничего из этого не помогло мне, но я нашел точку останова на удаленном символе. Кажется, 2010 висел на нем. Чтобы увидеть, если это ваша проблема, выполните debug-> windows-> точки останова, если они есть, просто удалите их.

Сондерс упомянул, что проверил это, но это не было упомянуто в решениях этой проблемы. Возможно, это общеизвестно для некоторых, но не для всех нас.

user2144480
источник
5
У меня внезапно возникла эта проблема в VS2010, и это была, действительно, одна из моих точек прерывания, которая вызывала ее. Как только я очистил свои контрольные точки, снова стало быстро.
Давид Айрапетян
3
Wow..VS2012 полз, 5 минут, чтобы построить простой проект. Снял все контрольные точки и он снова быстро светит, спасибо !!
QFDev
1
Прочитав это и следуя тому, что вы сказали, я нашел точку останова, которая каким-то образом была помещена в код XML одного из моих файлов сущностей edmx. Ты да мужчина / женщина.
JB06
Благодаря тонну. Это решило мою проблему с очень низкой производительностью VS2010.
Вайбхав Патле
2
Это также
помогло
41

Я удалил папку «Temporary ASP.NET Files», и загрузка моей локальной страницы значительно улучшилась. Вот путь ...% temp% \ Временные файлы ASP.NET \

Шон Кеннеди
источник
9
C: \ Users \ {USER_NAME} \ AppData \ Local \ Temp - это путь, а папка «AppData» - это скрытая папка
Шива Нару,
2
Я нашел 1 ГБ старого дерьма здесь .... удалить все это и VS работает немного лучше. :)
RitchieD
29

Вы включили FusionLog?

Мой VisualStudio очень медленно запускался, открывал решение и загружал символы при запуске отладки. Это было медленно только на моей машине, но не на других машинах.

FusionLog записывает тонны журналов на диск. Просто отключив его на RegEdit, я решил все.

Это ключ FusionLog в реестре:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Проверьте значение ForceLog (1 включено, 0 отключено).

rkawano
источник
1
Ммм ... очень хороший ответ. Я был в одной лодке. Я тоже FusionLogдавно включил и забыл его отключить. Теперь отладка ASP.NET MVCприложения происходит намного быстрее. Слава Богу и @rkawano. :)
Лениэль Маккаферри
29

Я столкнулся с той же проблемой и перепробовал большинство из вышеперечисленных решений. Простое удаление кеша и временных файлов работает на меня.

Попробуйте удалить содержимое этих двух папок:

C:\Users\\{UserName}\AppData\Local\Microsoft\WebsiteCache

а также

C:\Users\\{UserName}\AppData\Local\Temp (в частности, папки iisexpress и Temporary ASP.NET Files).

Это можно настроить так, чтобы это происходило автоматически при входе в Windows путем добавления файла cmd в C:\Users\\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupпапку со следующим содержимым:

rmdir C:\Users\\{username}\AppData\Local\Microsoft\WebsiteCache /s /q

rmdir C:\Users\\{username}\AppData\Local\Temp /s /q
aricons
источник
Это сработало. Папка «AppData» - это скрытая папка, на всякий случай кто-то не может ее найти.
Шива Нару
3
Это тот самый! Это работает так хорошо, что теперь я делаю это автоматически при входе в Windows: я добавил файл с именем DeleteVisualStudioCache.cmd в C: \ Users \ {username} \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Запуск с помощью следующих команд: rmdir C: \ Users \ {имя пользователя} \ AppData \ Local \ Microsoft \ WebsiteCache / s / q rmdir C: \ Users \ {имя пользователя} \ AppData \ Local \ Temp / s / q pause
Грэм Лайт
25

Я думаю, что наконец-то смогу узнать причину, но не причину. Когда проблема начала возникать снова, я заметил, что тонна процессов "conhost.exe" осиротела. Я бы закрыл Visual Studio, и они остались бы открытыми. Окончание задачи по каждому из них окончательно и надежно решило проблему. [с надеждой]

(Просто обратите внимание, что conhost.exe не является процессом Visual Studio, хотя Visual Studio использует его. Таким образом, другие пользователи могут иметь другие приложения, которые запускают conhost.exe. Я знаю, что на моей машине нет, поэтому я могу благополучно завершить задачу всем им, кроме YMMV.)

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


Правка № 1 - К сожалению, это не «серебряная пуля». Это не всегда работает для меня. Обычно, когда дела идут медленно, я просто закрываю все свои сеансы Visual Studio, затем захожу в диспетчер задач и заканчиваю любой его экземпляр, conhost.exe, iisexpress.exe Microsoft.VisualStudio.Web.Host.exe и MSBuild.exe. Я могу найти.

Как правило, после этого, когда я перезапускаю свой проект, он быстро загружается. Но не всегда.

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


Правка № 2 - Два года спустя, и это все еще проблема для меня в Visual Studio Community 2013, но я, кажется, по крайней мере нашел преступную задачу: Explorer.exe . Да, кто знал. В тот момент, когда я заканчиваю эту задачу, бац, страница загружается за одну секунду.

Если у меня открыт файловый браузер Windows Explorer для моего перенаправленного сетевого диска (что часто происходит именно там, где находится мой код), эта проблема, похоже, возникает. Закрытие окна не достаточно, я должен убить всю задачу Explorer.exe. Я мог только догадываться, что он делает ... сходя с ума с файловыми ручками?

Обычно я могу использовать диспетчер задач, чтобы запустить новую задачу explorer.exe (я могу взять только столько вкладок alt-tabbing), и Visual Studio продолжит загружаться красиво и быстро. Но если я снова открою Windows Explorer, он почти всегда возвращается к супер-медленному.

Итак, если у вас есть перенаправленный сетевой ресурс, попробуйте. Это наверняка лучше, чем работать на месте.

Ber'Zophus
источник
Я знаю, что это немного старые новости, но у меня была такая же проблема. Моя команда предложила использовать сценарий сборки, который копировал файлы из моего локального источника туда, где эти файлы запускались, и каждый раз, когда я запускал эту подпрограмму сам по себе, он создавал файл conhost.exe, а не закрывал его. Как только я закончил все лишние копии этого, он снова стал молниеносно быстрым.
SomeoneRandom
22

Выше приведены все хорошие решения, и я попробовал все из них, но получил решение здесь , которое заключается в

Debug -> Delete All Breakpoints
Тахир Хасан
источник
19

Для меня это был IE 9.08.8112.16241. Как только я использовал Firefox или Chrome, не было медленной отладки с F10 или F11. Я не знаю, в чем проблема с IE, но сейчас я официально презираю его использование для тестирования.

Обновление: я отключил все надстройки программы IE, и он вернулся на полную скорость. Включение их по одному показало, что виновником был LastPass (в моем случае). Я думаю, что я не могу обвинить MS в конце концов.

DMadden51
источник
2
Это решило и мою проблему. Я получал полные блокировки системы при попытке отладки, особенно при использовании окна QuickWatch. Панель инструментов LastPass должна быть отключена. (IE 10.0.9200.16635)
mpeterson
1
И именно поэтому я люблю StackOverflow. Но LastPass должен это исправить - я сейчас пишу им по электронной почте, чтобы сообщить им. Очевидно, это все еще проблема с VS2013 и IE 11. Отключил LastPass и вернулся в нормальное состояние. Спасибо UserBlueOne за информацию - можете снова приступить к работе.
Шон
1
СВОБОДНАЯ ЛАСТПАССА! Моя клавиатура была полностью набита при отладке в VS 2012 с моим приложением MVC. Отключил LastPass и все снова полетело. СПАСИБО! Upvoted.
Тони
В Win8.x с IE, если вы используете учетную запись MS для входа в систему, вы можете синхронизировать свои логины, поэтому не нужно использовать LastPass, но все же есть (частично) преимущества :)
Peter
Это ... сработало для меня. Обратите внимание, что сейчас 2019 год - шесть лет спустя - и я использую плагин LastPass с Microsoft Edge.
Люк Маурер
15

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

<compilation ... batch="false" optimizeCompilations="true"> ... </compilation>

Что делает batch = "false"?

Это делает предварительную компиляцию более избирательной, компилируя только те страницы, которые были изменены и требуют повторной компиляции

Что именно делает optimizeCompilations? Источник

ASP.NET использует хеш-код для каждого приложения, который включает в себя состояние нескольких вещей, включая папку bin и App_Code и global.asax. Всякий раз, когда запускается домен приложения ASP.NET, он проверяет, изменился ли этот хеш-код по сравнению с тем, что он ранее вычислял. Если это так, то вся папка codegen (где находятся скомпилированные и теневые копии) уничтожается.

Когда эта оптимизация включена (через optimizeCompilations = "true"), хеш больше не учитывает bin, App_Code и global.asax. В результате, если они меняются, мы не стираем папку с codegen.

Ссылка: Элемент компиляции на MSDN

Korayem
источник
2
Спасибо за публикацию. Это фактически улучшило мою работу, а не приняло ответ.
Канаполис
@ Ber'Zophus, можешь попробовать и поделиться с нами своими результатами?
Кораем
Компиляция идет внутри system.web
The One
1
Подтверждено для работы с большими решениями и веб-приложениями (MVC) внутри.
hQuse
12

У меня были проблемы с производительностью при отладке, и я испробовал очень много вариантов отладчика. В моем случае огромная производительность достигается при изменении этих параметров:

Инструменты - Параметры - Отладка - Окно вывода - (Общие настройки вывода - Все выходные данные отладки) - ВЫКЛ

arkhivania
источник
12

В моем случае это было расширение Visual Studio .NET Reflector (версия 8.3.0.93) с VS 2012. Отладка занимала 10 секунд для каждого шага более (F10).

В Visual Studio перейдите в раздел Инструменты / Расширения и обновления ... и отключите расширение Visual Studio Reflector . Не забудьте перезапустить Visual Studio.

shamp00
источник
Я с трудом узнал, что это вызывает мою проблему. Только после отключения расширения я посмотрел, заметил ли это кто-то еще.
AWJ
11

У меня были проблемы с медленной отладкой Visual Studio при отладчике "Native Code" был включен . Попробуйте отключить это.

На «Visual Studio 2012» перейдите по ссылке:

  1. Свойства проекта ->
  2. Интернет ->
  3. Отладчики (внизу страницы). ->
  4. Отключить все, кроме ASP.NET

Надеюсь, поможет.

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

Паулюс Залиадуонис
источник
Моя, к сожалению, уже настроена на это, так что я ничего не исправлю. Но может быть хорошим советом для других, чтобы попробовать.
Ber'Zophus
Это исправило это для меня!
Харви
11

В моем случае это было

Tools/Options/Debugging/General/Enable JavaScript debugging for ASP.NET (Chrome and IE)

Как только я снял этот флажок, мой отладочный запуск изменился с 45-60 секунд до 0-5 секунд.

toddmo
источник
Этот самый быстрый
Фрэнк Мят Чт
10

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

Я смутно помнил, что файл «suo» (в той же директории, что и файл решения «sln») может быть поврежден и все замедляется.

введите описание изображения здесь

Я удалил мои файлы "suo" и все было в порядке. Удаление файлов .suo безвредно и подразумевает только воссоздание моего макета Windows, а также запуск проекта и несколько других некритических настроек.

Larry
источник
Я только что понял, что после отключения электричества я тоже стал работать медленно, большое спасибо за этот ответ.
Nic
ищите .vsпапку в более поздних версиях Visual Studio. Удалить это.
САПР bloke
10

Я также столкнулся с этой проблемой, ниже приведены шаги, которые я выполняю, и это работает для меня всегда:

  • Удаление файла .suo решения.
  • Удаление временных файлов ASP.NET (его можно найти по адресу % WINDOW% \ Microsoft.NET \ Framework \\ Temporary ASP.NET Files )
  • Удаление всех точек останова в приложении.
Geeky Ninja
источник
Перезапуск сделал это в 5 раз дольше, чем обычно, вместо 10 раз дольше, чем обычно. Удаление файла .suo сделало его практически мгновенным запуском. Спасибо!
Shelby115
Похоже, удаление файла .suo сработало. Любая причина удаления этих файлов помогает повысить производительность.
SharpCoder
@SharpCoder .suo содержит много информации, например, какие файлы в данный момент открыты в IDE, информацию об отладчике, локальные настройки и т. Д. И когда эти файлы будут повреждены, vs начнут потреблять больше ресурсов процессора, что приводит к замедлению VS и даже зависанию некоторые случаи.
Geeky Ninja
9

Я не знаю, сохраняется ли у вас эта проблема, но я отлаживаю сайты в Visual Studio, подключив отладчик к самому процессу, а не позволяя VS сделать это для меня, и я обнаружил, что это значительно улучшило время. Я использую расширение для VS под названием AttachTo, и у меня есть небольшая статья о том, как я использую его здесь .

Надеюсь, это поможет.

Эндрю Дэвис
источник
7

Моя медленная проблема VS была решена путем отключения ссылки на браузер

введите описание изображения здесь

соленый
источник
Я знаю, что комментарии "Спасибо" здесь немного недовольны, но серьезно, СПАСИБО, ОГРОМНОЕ. Это одно изменение привело к тому, что программа, которую я тестирую, перешла от медленной к непригодности к практически мгновенной реактивности. Вы, вероятно, купили мне около часа или двух в день производительности просто потому, что мне не пришлось ждать, пока что-
нибудь
@thnkwthprtls, добро пожаловать - одна из тех настроек MS по умолчанию, на которую нужно обратить внимание :)
Salty
Не обязательно его отключать, см. Мой ответ => stackoverflow.com/a/34979659/2736742
А. Морель
6

Если кто-то замечает, что такое поведение выходит из левого поля, убедитесь, что в web.config не установлены точки останова. Я, должно быть, установил один случайным щелчком мыши, и это действительно замедлило все операции отладки.

zmercier
источник
Просто имел точно такую ​​же вещь сам. Почти сводил меня с ума. Почему неактивная точка останова в файле web.config полностью прерывает отладку?
Pleunv
6

Потратив весь день на ожидание загрузки символов, столь же медленных, как скорость черепахи, смешивание и переключение между всеми возможными комбинациями: просто мой код, символы кэширования , Intellitrace , Just-In-Time, процессы уничтожения и т. Д.

Мое решение было на самом деле отключить антивирус . Да, Защитник Windows замедлял запуск моего проекта! Это проверило бы все dll, поскольку Visual Studio запросил их, и замедлило весь процесс загрузки символов.

Я должен сказать, что у наших машин есть отличные технические характеристики для быстрой компиляции решения, так что это никогда не было проблемой. Мы кодируем в VS 2013 Ultimate.

И.Г. Паскуаль
источник
1
Да, выключение защитника окон работает как шарм! Чтобы навсегда отключить Windows Defender в Windows 10, установите Start = "4" (4 для отключенных) в пути RegEdit HKLM \ System \ CurrentContolSet \ Services \ WinDefend
hal
Возникла проблема с антивирусом AVG. Кто-нибудь определился, можно ли исключить конкретную папку из антивируса для решения проблемы, пожалуйста? Я кэшировал символы и исключил папку кэша символов - но это не имело никакого значения.
Грэм
1
Вы можете сохранить AV и исключить из анализа определенные пути и цели (VS и ваши проекты)
Soleil - Mathieu Prévot
5

Очистка кеша символов работала для меня.

См. Строка меню / Инструменты / Параметры / Отладка / Символы / Пустой кэш символов

Димитрий С.
источник
3

Подобная проблема пропала впустую лучшую половину моего дня!

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

Моя была точка останова. У меня была точка останова «Break at function» (т. Е. Вместо нажатия клавиши F9 в строке кода, мы создаем их с помощью окна точек останова), которая должна останавливаться в функции библиотеки вне моего проекта.

И у меня было «Использовать Intellisense для проверки имени функции » ПРОВЕРЕНО. (Информация здесь .)

Это замедлилось по сравнению с адом (запуск проекта с 2 секунд до 5 минут).

Удаление точки останова решило это навсегда.

BuddhiP
источник
3

После всего вышесказанного у меня сработало одно:
в окне «Потоки» («Отладка» -> «Windows» - «Потоки») установите для параметра «Группировать» значение «Нет». Это можно сделать только во время отладки.

Это оказало влияние даже после закрытия этого окна.

Дэвид
источник
3

В Visual Studio:

Сервис -> Параметры -> Отладка -> Символы

Выберите «Только указанные модули». Нажмите ссылку «указать модули» и добавьте пустой модуль (нажмите кнопку «Новый документ» и нажмите «ОК»).

MCS
источник
3

Откройте папку решения в проводнике Windows, закройте Visual Studio, удалите файл .suo из проводника Windows.

Теперь откройте проект в визуальной студии, надеюсь, отладчик будет быстро подключен / отключен.

Абдул Рауф
источник
3

Для меня это были условные контрольные точки. Те, кажется, действительно замедляют ход событий.

ewolfman
источник
1
Действительно они делают. Но только если строки, содержащие их, действительно выполняются.
Питер Мортенсен,
3

Перейдите к переменным среды и найдите ключ _NT_SYMBOL_PATH.

Удали это.

Вуаля, работал как шарм.

ozba
источник
value == symsrv*symsrv.dll*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbolsдо сих пор нет кости!
SliverNinja - MSFT
3

Для меня проблемой была функция «Ссылка на браузер», которая очень тяжелая, если у вас есть несколько вкладок, открытых для одного проекта!

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

Просто закройте все вкладки, связанные с проектом, и оставьте только одну открытую!

Это бесплатная мгновенно визуальная студия! Это магия ! ;-)

«Ссылка на браузер» - это функция начиная с Visual Studio 2013, которая создает канал связи между средой разработки и одним или несколькими веб-браузерами. Вы можете использовать Browser Link для обновления вашего веб-приложения сразу в нескольких браузерах, что полезно для кросс-браузерного тестирования ».

А. Морель
источник
3

Быстрое и простое решение для тех, у кого нет особых отклонений от настроек VS по умолчанию.

Сервис -> Импорт и экспорт настроек -> Да, сохранить мои текущие настройки -> Visual C #

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

GDS
источник
3

Убедитесь, что вы не открывали Visual Studio в режиме администратора

Я столкнулся с этой проблемой и должен был работать в обычном режиме.

Саяд
источник
6
К сожалению, запуск от имени администратора требуется, если ваши проекты настроены для работы в IIS.
Нельсон Ротермел
@NelsonRothermel Какая версия? Больше нет (VS2017).
Солей - Матье Прево
@Soleil: В VS2017 это все еще требуется. IIS работает как служба Windows (или набор служб), а не в пространстве пользователя. Возможно, вы имеете в виду IIS Express, который не требует прав администратора. Я бы вообще рекомендовал вам использовать последний, особенно в организации, которая блокирует машины, но у нее есть несколько недостатков.
Нельсон Ротермел