Depuración / carga de Visual Studio muy lenta

505

Estoy al final del juicio. Visual Studio suele ser extremadamente lento para depurar o simplemente cargar ("iniciar sin depurar") mis sitios ASP.NET MVC. No siempre: al principio, los proyectos se cargarán bien y rápido, pero una vez que se carguen lentamente, siempre se cargarán lentamente después de eso. Podría estar esperando 1-2 minutos o más.

Mi configuración:

Actualmente estoy usando Visual Studio 2012 Express , pero también he tenido el mismo problema en Visual Studio 2010 Express. Mi solución está almacenada en una unidad de red; específicamente, es Mis documentos redirigidos a una unidad de red, si es importante. (No debería. Hay veces en que mi sitio se carga muy rápido con esta configuración).

Por lo general, cargo en Internet Explorer 9, pero el mismo problema ocurre en Firefox.

Esto puede suceder en cualquier proyecto ASP.NET MVC en el que trabajo, y parece girar en torno a tener DisplayTemplates, lo que hacen todos mis proyectos ASP.NET MVC. Y todo es C # y Razor, si eso importaba.

Síntomas

El sistema cargará mis símbolos cientos de veces. Básicamente, lo siguiente, pero hay al menos 300 de esas filas, cada una con archivos DLL muy diferentes para los mismos 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.

En lo anterior, tengo tres DisplayTemplates: "Contacto", "Ubicación" y "Código de estado". Parece que IIS está cargando símbolos dos veces por cada vez que se llama a la plantilla de visualización. Por lo tanto, si estoy mostrando una tabla de 100 entradas que llama a estas tres plantillas de visualización, hay 600 símbolos separados cargados.

Esta tampoco es una operación rápida. Al buscar en los archivos de registro que genera IIS, se tarda unos 200 ms en cargar cada símbolo. Por lo tanto, retrasos súper largos.

Lo que he probado:

  • Versión de depuración o lanzamiento, no importa.
  • Poner mi proyecto en una implementación completa de IIS en un servidor web lo ejecuta súper rápido sin problemas.
  • Cassini, IIS Express 7.5 e IIS Express 8.0 tienen el problema.
  • Eliminar todos los puntos de interrupción no hace nada.
  • Solución limpia , o eliminar el .suo tampoco hacen nada.
  • Si reparo IIS Express, o elimino la My Docs\IISExpresscarpeta, o reparo / reinstalo Visual Studio → el problema PUEDE desaparecer, pero solo por un tiempo, antes de que vuelva.

Cualquier consejo en absoluto es apreciado.

Para responder más preguntas, sí, mi máquina definitivamente tiene la potencia. Lo irritante es que el mismo proyecto, con NADA alterado, puede cargarse muy rápidamente a veces, generalmente después de reparar IIS Express y eliminar la My Docs\IISExpresscarpeta. Eventualmente, "algo" sucede y la carga de nuevo se reduce a 2 minutos. En lo que estoy trabajando no es un proyecto complicado. No hay bibliotecas externas ni dependencias, y mi VS.NET no tiene complementos.

Cabe destacar que esta máquina tiene Symantec Endpoint Protection, que tiene un historial de causar estragos. Pero deshabilitarlo por completo (es bueno ser administrador) no solucionó el problema.

Tengo una teoría en este punto. Estoy pensando que todo esto es porque estoy trabajando desde una carpeta redirigida desde un recurso compartido de red. Mientras el depurador pasaba por sus cientos de líneas de "símbolos cargados", hice una pausa para ver qué estaba haciendo. Estaba en mi código, cargando el DisplayTemplate que tenía. Entrando en la plantilla de salida esto:

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'

Parece que Visual Studio está volviendo a compilar mi plantilla de pantalla cada vez que se llama, que es nuevamente, cientos de veces. Mi teoría es que Visual Studio compila el archivo, lo guarda en el recurso compartido de red, el recurso compartido de red de alguna manera marca una nueva hora y Visual Studio cree que el archivo ha cambiado y, por lo tanto, Visual Studio lo vuelve a compilar nuevamente. Sin embargo, solo una teoría; Realmente no tengo idea.

Por un lado, aparentemente tengo archivos sin conexión (esta es una computadora de escritorio en una oficina; no podría importarme menos). Voy a deshabilitar, reiniciar y volver a intentar mañana.

Además, mover mi proyecto, tal como está, a la C local: lo corrige. Se carga muy rápido. Pero esto no es ideal en un entorno de trabajo. Pierdo versiones anteriores, mi código no está respaldado en absoluto a menos que lo copie manualmente, y ya no se comparte con nadie.

Puedo hacerlo copiando de ida y vuelta desde C al recurso compartido de red, si se trata de ello. Es mucho más molesto esperar dos minutos por cada carga de página.

Ber'Zophus
fuente
Tengo muchas preguntas: ¿Qué pasa con la máquina en la que la está ejecutando? ¿Tiene suficiente potencia para lo que estás tratando de hacer? ¿Tienes complementos de terceros? ¿Qué tipo de antivirus tienes?
Fickle Panther
1
Actualicé mi pregunta con más información.
Ber'Zophus
Eliminar archivos sin conexión solo parecía ser la solución. Funcionó muy bien por un tiempo, luego el problema volvió. Pero tengo otra posible respuesta. Actualizando mi solución.
Ber'Zophus
Para la segunda pregunta de antivirus, tuve problemas importantes con ThreatFire en ejecución. Desactivarlo temporalmente aceleró el depurador por mí al menos cientos de veces. Apagar mi AV principal (Avast!) Solo ayudó un poco.
Jon Coombs
@JohnSaunders ¿Intentó ejecutarlo en modo administrador ?: stackoverflow.com/questions/36322440/…
Robert Oschler

Respuestas:

650

Así es como resolví el problema de "carga lenta de símbolos" en Visual Studio 2012:

  • Vaya a Herramientas -> Opciones -> Depuración -> General

  • COMPRUEBE la marca de verificación junto a "Habilitar solo mi código".

  • Vaya a Herramientas -> Opciones -> Depuración -> Símbolos

  • Haga clic en el botón "..." y cree / seleccione una nueva carpeta en algún lugar de su computadora local para almacenar símbolos almacenados en caché. Llamé al mío "Almacenamiento en caché de símbolos" y lo puse en Documentos -> Visual Studio 2012.

  • Haga clic en "Cargar todos los símbolos" y espere a que los símbolos se descarguen de los servidores de Microsoft, lo que puede demorar un poco. Tenga en cuenta que el botón Cargar todos los símbolos solo está disponible durante la depuración.

  • Desmarque la marca de verificación junto a "Servidores de símbolos de Microsoft" para evitar que Visual Studio consulte de forma remota los servidores de Microsoft.

  • Haga clic en Aceptar".

De ahora en adelante, la carga de símbolos debería ser mucho más rápida.

Tenga en cuenta que si realiza cambios / descargas en los ensamblados de Microsoft, es posible que deba volver al cuadro de diálogo Símbolos y "Cargar todos los símbolos" nuevamente.

Zeb Kimmel
fuente
31
No hay solución para mí, me temo. Esta sería una buena solución para aquellos que giran en torno a problemas con los símbolos de Microsoft. Desafortunadamente para mí, mi problema parece girar en torno a mis propios símbolos. Esos símbolos ya se almacenan en caché localmente y, por alguna razón, compilaron cientos de mosaicos en una sola carga de página.
Ber'Zophus
8
gracias por este consejo, un problema que tengo aquí es que el botón cargar todos los símbolos está desactivado para mí ¿alguna idea?
Chris McGrath
14
@ChrisMcGrath prueba este enlace social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/… . Por cierto, gracias por la gran respuesta
Bobby Tables
16
incluso después de seguir sus pasos, el botón "Cargar todos los símbolos" está oculto y no puedo hacer clic en eso. ¿Qué debería hacer ahora? Estoy usando VS Express 2012.
Himanshu Aggarwal
86
Aquí hay una solución para aquellos que tienen el botón Cargar todos los símbolos deshabilitados: el botón solo está disponible durante la depuración.
Gwynnbleid1
114

Desactivar intelliTrace me arregló esto.

En Visual Studio, Herramientas -> Opciones -> IntelliTrace

Luego, desmarque la casilla de verificación para "Habilitar IntelliTrace".

Deshabilitar IntelliTrace en Visual Studio 2012

burro
fuente
2
Tuve este problema al pasar por una de mis pruebas unitarias. Tomó aproximadamente 300 segundos con intellitrace activado y aproximadamente 14 segundos cuando se apagó. Esta solución realmente funcionó para mí.
Paul Bullivant
2
Mejoré mi inicio de 25 segundos a 6. Creo que me ayudó mucho porque estaba ejecutando mucho de mi propio código al iniciar la aplicación
James Ellis-Jones
2
Maldita sea ... De 1 min a 10 segundos. Se selecciona por defecto en VS2012 Ultimate. Cuidado chicos
Kevin Cloet
77
No se puede encontrar Intellitrace en Herramientas => Opciones. .. tengo vsComunity 2015
shireef khatab
8
En Visual Studio 2015, Intellitrace solo existe en VS 2015 Enterprise Edition.
HK1
78

Nada de esto funcionó para mí, pero encontré un punto de interrupción en un símbolo que se eliminó. Parece que 2010 estaba colgando de él. Para ver si este es tu problema, depura-> windows-> puntos de interrupción. Si hay alguno allí, simplemente bórralos

Saunders, mencionó que lo comprobó, pero no se mencionó en las soluciones para este problema. Quizás conocimiento común para algunos, pero no para todos.

usuario2144480
fuente
55
Empecé a tener este problema en VS2010 de repente, y fue, de hecho, uno de mis puntos de quiebre lo que lo estaba causando. Tan pronto como borré mis puntos de ruptura, volvió a ser rápido.
David Airapetyan
3
Wow..VS2012 estaba arrastrándose, 5 minutos solo para construir un proyecto simple. Despejó todos los puntos de interrupción y se está aclarando rápidamente nuevamente, ¡gracias!
QFDev
1
Después de leer esto y seguir lo que dijiste, encontré un punto de interrupción que de alguna manera se colocó en el código XML de uno de mis archivos de entidad edmx. Eres un hombre / mujer.
JB06
Gracias una tonelada. Esto resolvió mi problema con un rendimiento muy lento de VS2010.
Vaibhav Patle
2
Esto también funcionó para un problema de depuración lenta que tuve en Visual Studio 2015.
purplecat
41

Eliminé la carpeta "Archivos temporales de ASP.NET" y la carga de mi página localhost mejoró dramáticamente. Aquí está la ruta ...% temp% \ Archivos temporales ASP.NET \

Shaun Kennedy
fuente
99
C: \ Users \ {USER_NAME} \ AppData \ Local \ Temp es la ruta y la carpeta "AppData" es una carpeta oculta
Shiva Naru
2
Encontré 1 GB de basura vieja aquí ... bórralo todo y VS se ejecutará un poco mejor. :)
RitchieD
29

¿Ha habilitado FusionLog?

Mi VisualStudio fue muy lento para iniciar, abrir la solución y cargar símbolos al iniciar la depuración. Fue lento solo en mi máquina, pero no en otras máquinas.

FusionLog escribe toneladas de material de registro en el disco. Solo deshabilitarlo en RegEdit resolvió todo, en mi caso.

Esta es la clave FusionLog en el registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Verifique el valor de ForceLog (1 habilitado, 0 deshabilitado).

rkawano
fuente
1
Uhmmm ... muy buena respuesta. Estaba en el mismo bote. También lo habilité FusionLoghace mucho tiempo y olvidé desactivarlo. Ahora depurar la ASP.NET MVCaplicación es mucho más rápido. Gracias Dios y @rkawano. :)
Leniel Maccaferri
29

Experimenté el mismo problema y probé la mayoría de las resoluciones anteriores. Simplemente eliminar caché y archivos temporales terminan funcionando para mí.

Intente eliminar el contenido de estas dos carpetas:

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

y

C:\Users\\{UserName}\AppData\Local\Temp (en particular, las carpetas iisexpress y archivos temporales ASP.NET).

Esto se puede configurar para que ocurra automáticamente al iniciar sesión en Windows agregando un archivo cmd a la C:\Users\\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupcarpeta con el siguiente contenido:

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

rmdir C:\Users\\{username}\AppData\Local\Temp /s /q
Aricons
fuente
Esto funcionó. La carpeta "AppData" es una carpeta oculta, por si alguien no puede encontrarla.
Shiva Naru
3
¡Éste es el indicado! Funciona tan bien que ahora lo hago automáticamente cuando inicio sesión en Windows: agregué un archivo llamado DeleteVisualStudioCache.cmd a C: \ Users \ {username} \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Inicie con los siguientes comandos: rmdir C: \ Users \ {username} \ AppData \ Local \ Microsoft \ WebsiteCache / s / q rmdir C: \ Users \ {username} \ AppData \ Local \ Temp / s / q pausa
Graham Laight
25

Creo que finalmente al menos puedo conocer la causa, aunque no la razón. Cuando el problema comenzó a ocurrir nuevamente, noté una tonelada de procesos "conhost.exe" huérfanos. Cerraría Visual Studio y permanecerían abiertos. Terminar la tarea en cada uno de ellos finalmente ha resuelto el problema de manera confiable. [Ojalá]

(Solo tenga en cuenta que conhost.exe no es un proceso de Visual Studio, aunque Visual Studio lo utiliza. Por lo tanto, otros usuarios pueden tener otras aplicaciones que ejecutan conhost.exe. Sé que mi máquina no lo hace, por eso puedo finalice la tarea de forma segura todos ellos, excepto YMMV.)

¿Por qué sucede esto? Parece ocurrir cuando abro más de un proyecto a la vez, lo que suelo hacer a menudo, aunque solo construyo y depuro uno de ellos en cualquier momento.


Editar # 1 - Desafortunadamente, esta no es una "bala de plata". No siempre funciona para mí. Por lo general, cuando las cosas se ponen lentas, cierro todas mis sesiones de Visual Studio, luego entro al administrador de tareas y finalizo cualquier instancia, conhost.exe, iisexpress.exe Microsoft.VisualStudio.Web.Host.exe y MSBuild.exe Puedo encontrar.

Por lo general, después de eso, cuando reinicio mi proyecto, se cargará rápidamente. Pero no siempre.

Realmente creo que el mejor curso de acción es probablemente no construir y depurar código de una carpeta redirigida / recurso compartido de red.


Edición n. ° 2: dos años después, y esto sigue siendo un problema para mí en Visual Studio Community 2013, pero al menos encontré la tarea culpable: Explorer.exe . Sí, quién lo sabía. En el momento en que finalizo esa tarea, bam, la página se carga en un solo segundo.

Si tengo un explorador de archivos del Explorador de Windows abierto en mi unidad de red redirigida (que a menudo es porque es donde está mi código), este problema parece ocurrir. Cerrar la ventana no es suficiente, tengo que matar toda la tarea Explorer.exe. Solo podía adivinar lo que está haciendo ... ¿volviéndose loco con los identificadores de archivos?

Por lo general, puedo usar el administrador de tareas para iniciar una nueva tarea explorer.exe (solo puedo tomar tantas alt-tabbing), y Visual Studio continuará cargándose de manera agradable y rápida. Pero si vuelvo a abrir el Explorador de Windows, casi siempre vuelve a super-slow-mo.

Entonces, si tienes un recurso compartido de red redirigido, pruébalo. Es mejor que trabajar localmente.

Ber'Zophus
fuente
Sé que esta es una noticia un poco vieja, pero tuve el mismo problema. Mi equipo sugirió que usara un script de compilación que copiara los archivos de mi fuente local en el lugar donde se ejecutaban los archivos y cada vez que ejecutaba esa subrutina por sí misma crearía un conhost.exe y no lo cerraría. Una vez que terminé todas las copias adicionales de eso, volvió a correr a la velocidad del rayo.
SomeoneRandom
22

Las anteriores son todas buenas soluciones y las probé todas, pero obtuve la solución aquí , que es

Debug -> Delete All Breakpoints
Tahir Hassan
fuente
19

Para mí fue IE 9.08.8112.16241. Tan pronto como usé Firefox o Chrome, no hubo una depuración lenta con F10 o F11. No sé cuál es el problema con IE, pero oficialmente desprecio usarlo para probar ahora.

Actualización: He desactivado todos los complementos del programa IE y ha vuelto a la velocidad máxima. Encenderlos uno a la vez reveló que LastPass (en mi caso) era el culpable. Supongo que no puedo culpar a MS después de todo.

DMadden51
fuente
2
Esto solucionó mi problema también. Estaba obteniendo bloqueos completos del sistema cuando intentaba depurar, especialmente cuando usaba la ventana QuickWatch. LastPass Toolbar debe estar deshabilitado. (IE 10.0.9200.16635)
mpeterson el
1
Y es por eso que amo StackOverflow. Pero LastPass debería solucionar esto: ahora les estoy enviando un correo electrónico para informarles. Obviamente, sigue siendo un problema con VS2013 e IE 11. Desactivado LastPass y vuelve a la normalidad. Gracias a UserBlueOne por la información, puede seguir trabajando nuevamente.
Sean
1
FREAKEN LASTPASS! Mi teclado se llenó por completo al depurar VS 2012 con mi aplicación MVC. Desactivado LastPass y todo voló de nuevo. ¡GRACIAS! Votado
Tony
En Win8.x con IE, si usa una cuenta de MS para iniciar sesión, puede sincronizar sus inicios de sesión, por lo que no es necesario usar LastPass pero aún tiene (parcialmente) los beneficios, :)
Peter
Esto ... funcionó para mí. Tenga en cuenta que ahora es 2019 --- seis años después --- y estoy usando el complemento LastPass con Microsoft Edge.
Luke Maurer
15

Para mí, implementé este consejo que básicamente mejoró drásticamente el rendimiento al agregar los siguientes dos atributos a la etiqueta de compilación en web.config

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

¿Qué hace batch = "false"?

Hace que la compilación previa sea más selectiva al compilar solo las páginas que han cambiado y requieren una nueva compilación

¿Qué es exactamente lo que hace optimizeCompilations? Fuente

ASP.NET utiliza un código hash por aplicación que incluye el estado de varias cosas, incluida la carpeta bin y App_Code, y global.asax. Cada vez que se inicia un dominio de aplicación ASP.NET, comprueba si este código hash ha cambiado de lo que había calculado anteriormente. Si es así, se borrará toda la carpeta codegen (donde viven los ensamblados compilados y copiados en la sombra).

Cuando esta optimización está activada (a través de OptimizeCompilations = "true"), el hash ya no tiene en cuenta bin, App_Code y global.asax. Como resultado, si esos cambios no borramos la carpeta codegen.

Referencia: elemento de compilación en msdn

Korayem
fuente
2
Gracias por tu publicación. En realidad, esto hizo más para mejorar mi rendimiento que la respuesta aceptada.
Kanapolis
@ Ber'Zophus, ¿puedes probar este y compartir con nosotros tus resultados?
Korayem
la compilación va dentro de system.web
The One
1
Confirmado para trabajar para una gran solución y aplicación web (MVC) dentro.
hQuse
12

También tuve problemas de ejecución con la depuración y probé muchas opciones de depurador. En mi caso, se logró un gran rendimiento cuando cambio estas opciones:

Herramientas - Opciones - Depuración - Ventana de salida - (Configuración de salida general - Toda la salida de depuración) - DESACTIVADO

arkhivania
fuente
12

En mi caso, era la extensión .NET Reflector Visual Studio (versión 8.3.0.93) con VS 2012. La depuración tardaba 10 segundos para cada paso (F10).

En Visual Studio, vaya a Herramientas / Extensiones y Actualizaciones ... y desactive la Extensión .NET Reflector Visual Studio . No olvides reiniciar Visual Studio.

shamp00
fuente
Descubrí por las malas que esto también estaba causando mi problema. Solo después de deshabilitar la extensión, miré para ver si alguien más lo había notado.
awj
11

Tuve problemas con la depuración lenta de Visual Studio cuando se habilitó el depurador "Código nativo" . Intenta deshabilitarlo.

En "Visual Studio 2012" vaya a:

  1. Propiedades del proyecto ->
  2. Web ->
  3. Depuradores (parte inferior de la página). ->
  4. Deshabilitar todo excepto ASP.NET

Espero eso ayude.

Preguntas similares: 1 , 2

Paulius Zaliaduonis
fuente
La mía ya está lista para eso desafortunadamente, así que no hay solución para mí Pero podría ser un buen consejo para que otros lo intenten.
Ber'Zophus
¡Eso me lo arregló!
Harvey
11

En mi caso fue

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

Una vez que desmarqué esto, mi inicio de depuración pasó de 45-60 segundos a 0-5 segundos.

toddmo
fuente
Este es el más rápido
Frank Myat jue
10

Una vez, después de un corte de energía, tuve que enfrentar el mismo problema de lentitud cada vez que se alcanzaba un punto de interrupción o se lanzaba una Excepción.

Tuve la vaga necesidad de recordar que el archivo "suo" (en el mismo directorio que el archivo de solución "sln") puede estar dañado y hacer que todo se ralentice.

ingrese la descripción de la imagen aquí

Eliminé mis archivos "suo" y todo estaba bien. La eliminación de archivos .suo es inofensiva y solo implica recrear mi diseño de Windows más el proyecto de inicio y algunas otras personalizaciones no críticas.

Larry
fuente
Me acabo de dar cuenta de que también me puse lento después de un corte de energía, muchas gracias por esta respuesta.
Nic
busque una .vscarpeta en versiones posteriores de Visual Studio. Eliminar eso
Bloke CAD
10

También estaba enfrentando este problema, a continuación se detallan los pasos que realizo y siempre funciona para mí:

  • Eliminar el archivo .suo de la solución.
  • Eliminación de los archivos temporales de ASP.NET (puede encontrarlos en % WINDOW% \ Microsoft.NET \ Framework \\ Archivos temporales de ASP.NET )
  • Eliminar todos los puntos de interrupción en la aplicación.
Geek Ninja
fuente
El reinicio hizo que tardara 5 veces más de lo normal en lugar de 10 veces más de lo normal. Al eliminar el archivo .suo, el inicio fue casi instantáneo. ¡Gracias!
Shelby115
Parece que eliminar el archivo .suo funcionó. ¿Alguna razón para eliminar estos archivos ayuda a aumentar el rendimiento?
SharpCoder
@SharpCoder .suo contiene mucha información, como qué archivos están actualmente abiertos en el IDE, información del depurador, configuraciones locales, etc. algunos casos.
Geeky Ninja
9

No sé si todavía tiene este problema, pero depuro los sitios en Visual Studio adjuntando el depurador al proceso en sí mismo en lugar de dejar que VS lo haga por mí y he descubierto que mejora enormemente los tiempos. Utilizo una extensión para VS llamada AttachTo y tengo un pequeño artículo sobre cómo lo uso aquí .

Espero que esto ayude.

Andrew Davis
fuente
7

Mi problema de VS lento se resolvió desactivando el enlace del navegador

ingrese la descripción de la imagen aquí

Salado
fuente
Sé que los comentarios de "Gracias" están mal vistos aquí, pero en serio, MUCHAS GRACIAS. Este cambio llevó el programa que estoy probando de lento al punto de ser inutilizable a reactividad esencialmente instantánea. Probablemente me compró aproximadamente una o dos horas por día de la productividad sólo para no tener que esperar a que las cosas a la carga
thnkwthprtls
@thnkwthprtls de nada - una de esas configuraciones predeterminadas de MS que debes tener en cuenta :)
Salty
No es necesario deshabilitarlo, vea mi respuesta => stackoverflow.com/a/34979659/2736742
A. Morel
6

Si alguien nota que este comportamiento sale del campo izquierdo, verifique que no tenga ningún punto de interrupción establecido en web.config. Debo haber configurado uno con un clic de ratón perdido, y realmente ralentizó todas las operaciones de depuración.

zmercier
fuente
Acabo de tener exactamente lo mismo. Casi me volvió loco. ¿Por qué demonios un punto de interrupción inactivo en un archivo web.config rompe completamente la depuración?
Pleunv
6

Después de pasar todo el día esperando que los símbolos se carguen tan lentamente como la velocidad de la tortuga, mezclar y cambiar entre todas las combinaciones posibles: Just My Code, símbolos de almacenamiento en caché , Intellitrace , Just-In-Time, procesos de matanza , etc.

Mi solución fue en realidad deshabilitar el antivirus . ¡Sí, Windows Defender estaba ralentizando el lanzamiento de mi proyecto! Verificaría todos los dlls cuando Visual Studio los solicitó y ralentizó todo el proceso de carga de símbolos.

Tengo que decir que nuestras máquinas tienen excelentes especificaciones para compilar la solución realmente rápido, por lo que nunca fue un problema. Codificamos en VS 2013 Ultimate.

IG Pascual
fuente
1
Sí, ¡apagar windows defender funciona de maravilla! Para desactivar permanentemente el defensor de Windows en Windows 10, configure Inicio = "4" (4 es para deshabilitado) en la ruta RegEdit HKLM \ System \ CurrentContolSet \ Services \ WinDefend
hal
Tener el problema con AVG antivirus. ¿Alguien ha resuelto si una carpeta en particular puede excluirse del antivirus para resolver el problema, por favor? He almacenado en caché los símbolos y he excluido la carpeta de caché de símbolos, pero esto no hizo ninguna diferencia.
Graham Laight
1
puede mantener el AV y excluir del análisis ciertas rutas y objetivos (VS y sus proyectos)
Soleil - Mathieu Prévot
5

Vaciar el caché de símbolos funcionó para mí.

Consulte: barra de menú / Herramientas / Opciones / Depuración / Símbolos / Vaciar caché de símbolos

Dimitri C.
fuente
3

¡Un problema similar desperdició mejor la mitad de mi día!

Como la solución para mi problema fue diferente de lo que se dice aquí, la publicaré para que pueda ayudar a alguien más.

El mío fue un punto de quiebre. Tuve un punto de interrupción "Break at function" (es decir, en lugar de presionar F9 en una línea de código, los creamos usando la ventana de puntos de interrupción) que se supone que se detiene en una función de biblioteca fuera de mi proyecto.

Y tenía "Usar Intellisense para verificar el nombre de la función " COMPROBADO. (Información aquí .)

Esto se ralentizó frente a un infierno (inicio del proyecto de 2 segundos a 5 minutos).

Eliminar el punto de quiebre lo resolvió para siempre.

BuddhiP
fuente
3

Una cosa que funcionó para mí después de hacer todo lo anterior fue:
En la ventana Subprocesos (Depuración-> Windows-> Subprocesos), establezca Agrupar por en Ninguno. Esto solo se puede hacer durante la depuración.

Esto estaba teniendo un impacto incluso después de cerrar esa ventana.

David
fuente
3

En Visual Studio:

Herramientas -> Opciones -> Depuración -> Símbolos

Elija "Solo módulos especificados". Haga clic en el enlace "especificar módulos" y agregue un módulo en blanco (haga clic en el botón de nuevo documento y presione Aceptar).

MCS
fuente
3

Abra la carpeta de la solución en el explorador de Windows, cierre el estudio visual, elimine el archivo .suo del explorador de Windows.

Ahora abra el proyecto en Visual Studio, esperemos que el depurador se adjunte / desconecte rápidamente.

Abdul Rauf
fuente
3

Para mí fueron puntos de interrupción condicionales. Esos parecen realmente retrasar las cosas.

hombre lobo
fuente
1
De hecho lo hacen. Pero solo si las líneas que las contienen se ejecutan realmente.
Peter Mortensen
3

Vaya a las variables de entorno y busque la clave _NT_SYMBOL_PATH.

Bórralo.

Voila, trabajó como un encanto.

ozba
fuente
value == symsrv*symsrv.dll*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbolsTodavía no hay dados!
SliverNinja - MSFT
3

¡El problema para mí fue la función "Enlace del navegador" que es muy pesada cuando tienes varias pestañas abiertas para el mismo proyecto!

Porque cada vez que lanzamos el proyecto, se abre una nueva pestaña con las comunicaciones de enlace del navegador.

¡Simplemente cierre todas las pestañas asociadas con el proyecto y mantenga solo una abierta!

Este estudio instantáneamente visual gratuito! Es magia ! ;-)

“Browser Link es una característica desde Visual Studio 2013 que crea un canal de comunicación entre el entorno de desarrollo y uno o más navegadores web. Puede usar Browser Link para actualizar su aplicación web en varios navegadores a la vez, lo cual es útil para las pruebas entre navegadores ".

A. Morel
fuente
3

Una solución rápida y fácil para aquellos que no tienen mucha desviación de la configuración predeterminada de VS.

Herramientas -> Importar y exportar configuraciones -> Sí, guardar mi configuración actual -> Visual C #

Estoy seguro de que la solución anterior también funcionaría con otras configuraciones predeterminadas. En mi caso, algo se equivocó con la configuración de carga de mis símbolos, pero no pude solucionarlo a pesar de que probé algunas de las soluciones sugeridas.

GDS
fuente
3

Asegúrese de no haber abierto Visual Studio en modo administrador

Me enfrenté a este problema y tuve que correr en modo normal.

sajad
fuente
66
Desafortunadamente, se requiere ejecutar como administrador si tiene sus proyectos configurados para ejecutarse en IIS.
Nelson Rothermel
@NelsonRothermel ¿Qué versión? Ya no más (VS2017).
Soleil - Mathieu Prévot
@Soleil: en VS2017 todavía se requiere. IIS se ejecuta como un servicio de Windows (o conjunto de servicios) y no en el espacio del usuario. Puede estar refiriéndose a IIS Express que no requiere derechos de administrador. En general, le recomiendo que use este último, especialmente en una organización que bloquea las máquinas, pero tiene algunas desventajas.
Nelson Rothermel