Problema de depuración lenta en Visual Studio

87

En mi instancia de Visual Studio, incluso si solo escribí una sola línea de retorno en una aplicación de consola C #, me tomará un minuto después de presionar F5para ejecutar el código real (me refiero al tiempo que lleva detenerse en la declaración de retorno única después de presionando F5: establezco un punto de interrupción en la declaración de retorno en la mainfunción). ¿Qué está mal? ¿Existe una lista de verificación?

Estoy usando la edición VSTS de Visual Studio 2008 y estoy depurando en Windows Server 2003 x64.

George2
fuente
2
Solo para estar seguro ... ¿Cuánta memoria tienes disponible cuando intentas ejecutar el código? VS es un
acaparador de
1
¿Cuál es tu hardware? Visual Studio consume mucho disco y CPU, por lo que tener una máquina con un precio económico carecerá de rendimiento.
William Holroyd
1
Tener> 2-3 puntos de interrupción condicionales es mal manejado por VS ...
Simon Buchan
Tengo memoria 4G y ningún otro proceso se está ejecutando al mismo tiempo. Acabo de reiniciar mi máquina un par de veces y el mismo síntoma. No me encontré con tales problemas una semana antes. ¿Alguna otra idea?
George2
2
Están todos listados en Depurar-> Windows-> Puntos de interrupción (Ctrl-Alt-B). Pero sabrías si hicieras alguna ...
Simon Buchan

Respuestas:

150

Es posible que deba eliminar todos sus puntos de interrupción; tenga en cuenta que debe hacer clic en el botón "Eliminar todos los puntos de interrupción" (o usar Ctrl+ Shift+ F9), NO simplemente eliminarlos uno por uno. Si Visual Studio ha alterado la configuración de su solución, esta última no funcionará. Es posible que primero deba agregar un punto de interrupción para que esto funcione (inteligente, ¿eh?).

Si lo peor llega a ser peor, es posible que deba eliminar su .suoarchivo y dejar que Visual Studio inicie uno nuevo desde cero. Sin embargo, tenga en cuenta que perderá los ajustes de configuración de su solución personal (solo para esta solución, no para otras). Sin embargo, es posible que desee mover o cambiar el nombre del archivo temporalmente hasta que determine si este es el problema o no; de esa forma, siempre podrás moverlo hacia atrás. He visto que algunos recursos en línea recomiendan eliminar (mover / cambiar el nombre) del .ncbarchivo también.

zweiterlinde
fuente
2
Hola, zweiterlinde. Encuentro que el cuello de botella debería lidiar con la red. Cuando desconecto el cable de red, el rendimiento es muy bueno en la depuración. ¿Tienes alguna idea sobre por qué? y cómo evaluar más?
George2
eliminar un archivo .suo de 14Mb funcionó para mí :) ahora es un insignificante 150Kb. El problema ocurrió después de actualizar de VS2010 Pro a Ultimate
GreyCloud
+1. Muchas gracias, funcionó). Mi VS 2010 tardó 2 minutos en iniciar un proyecto en una estación de trabajo. ¿Eh? Qué error ....
Arsen Zahray
También eliminé el archivo .suo, pero lo hice mientras Visual Studio se estaba ejecutando. Cuando reinicié Visual Studio, adjuntó el depurador muy rápido nuevamente, y parece que mantuvo la mayor parte de mi configuración.
stiduck
+1 Muchas gracias, de verdad. Entonces, en mi caso, eliminar el archivo suo funcionó perfectamente para mí.
Dean Seo
26

He visto esto antes. Intente eliminar todos sus puntos de interrupción y luego configure los que desee. Hit F5. ¿Es más rápido ahora?

Acabo de notar que mencionaste la configuración de la función de depuración de fuentes .NET. Intenta desactivar eso. Su conectividad de red al servidor de origen de Microsoft puede ser lenta. También deshabilite cualquier conectividad del servidor de símbolos en el menú HerramientasOpcionesDepuraciónSímbolos .

También intente deshabilitar "Habilitar evaluación de propiedades y otras llamadas a funciones implícitas" en el menú HerramientasOpcionesDepuraciónGeneral .

m-agudo
fuente
1
En mi ventana de puntos de interrupción, solo hay uno en la declaración de retorno de mi función Main. ¿Alguna otra lista de verificación?
George2
1
Se agregaron más cosas para probar. Espero eso ayude.
m-sharp
He eliminado el único punto de interrupción en la declaración de retorno de mi función principal, pero aún es muy lento para iniciar la aplicación y detenerla, toma 1 minuto más o menos. ¿Alguna otra idea?
George2
Aquí tienes otra idea para aislar tu problema. Intente desconectar su cable de red, reinicie Visual Studio y presione F5 en su proyecto. ¿Eso cambia algo?
m-sharp
1
Intente deshabilitar eso, su conectividad de red al servidor de origen de Microsoft puede ser lenta. También deshabilite cualquier conectividad del servidor de símbolos en Herramientas> Opciones> Depuración> Símbolos - Esto funcionó para mí
Yousuf Azad
19

O elimine su archivo .suo que se puede encontrar junto a su archivo de solución (.sln). Esto resolvió un problema que tenía con las sesiones de depuración que tardaban mucho en iniciarse y detenerse.

Franco
fuente
+1 por salvar mi cordura (y salvarme una reinstalación de VS2010). ¡Gracias!
Chuck Dee
Esta es también la solución a la que se hace referencia en MSDN: social.msdn.microsoft.com/Forums/vstudio/en-US/…
ecoe
Confirmar esto también se aplica a las versiones anteriores 2003.NET y 2005. Una aplicación tenía un par de puntos de interrupción y funcionaba bien. Se agregaron algunos puntos de interrupción más ... 100% de uso de la CPU y un parpadeo terrible en VS durante la depuración. VS cerrado, eliminado .suo, vuelto a abrir y la depuración es rápida nuevamente.
AlainD
Esta es la solución que encuentro que siempre funciona cuando VS se vuelve demasiado lento en términos de depuración
Graviton
O cambie el nombre del archivo .suo primero antes de eliminarlo para que sea posible volver al estado anterior.
Peter Mortensen
12

Tuve este problema. Después de probar todos los consejos enumerados y eliminar todas las extensiones de Visual Studio, finalmente descubrimos que de alguna manera IntelliTrace estaba habilitado. Deshabilitar eso solucionó todo.

Cómo: habilitar y deshabilitar IntelliTrace

Kevin DiTraglia
fuente
También resuelve el problema si tiene un proyecto que usa SharpDX; funcionó para mí y ahora el rendimiento gráfico vuelve a la normalidad.
komorra
En el caso especial de usar SharpDX y Debug-Build, tuve el mismo efecto, pero solo estaba habilitada la depuración DX. Si no es necesario, busque "DeviceCreationFlags.Debug" y desactívelo
thewhiteambit
En VS2015 desmarqué 'Habilitar Intellitrace' y hice clic en Aceptar. Más tarde descubrió que debe cambiar de 'Intellitrace e información de llamadas' a 'Solo eventos de Intelllitrace'; si no lo hace, 'Habilitar Intellitrace' ¡MANTENGA MARCADO!
smirkingman
¡Resolvió los problemas! (no crea en el comentario de MS: "Este tema se aplica solo a Visual Studio 2010 Ultimate"). ¡Tengo la edición gratuita de 2017 y aceleró la depuración drásticamente!
marsh-wiggle
IntelliTrace en VS 2017 y versiones posteriores es una característica exclusiva de Enterprise, por lo que esto no solucionó mi problema (ya que solo tenía la edición VS 2017 Pro).
FoxDeploy
6

¿Tiene muchos puntos de interrupción establecidos? Esos realmente pueden ralentizar el tiempo de inicio. Cada vez que se carga un nuevo módulo en el espacio de direcciones del proceso, es necesario verificar todos para ver si son válidos.

1800 INFORMACIÓN
fuente
Solo tengo un punto de interrupción en mi código de modo de usuario. Pero recordé una semana antes de usar la función de depuración de código fuente en Visual Studio para establecer un punto de interrupción en el código interno de .Net. ¿Alguna forma de verificar todos los puntos de interrupción, incluidos los internos de .Net que configuré?
George2
Ninguna, pero todavía lenta, ¿alguna otra idea?
George2
no realmente, parece que su hardware debería estar bien y todos los demás elementos que habría probado parecen haber sido marcados por otros comentaristas. En este punto probablemente intentaría reinstalar Visual Studio - tal vez algo esté mal con la instalación
1800 INFORMACIÓN
Reinstalé en otro directorio pero todavía el mismo síntoma. ¿Alguna otra idea?
George2
6

Vaya al menú HerramientasOpcionesDepuradorSímbolos y compruebe si tiene configurados símbolos públicos o rutas de red UNC . También verifique el menú Herramientas * → OpcionesDepuradorGeneral para ver si tiene configurado el servidor de origen.

Todos estos pueden afectar la depuración en función de la velocidad de red lenta o servidores no disponibles. El tiempo de espera de 5 minutos es el tiempo de espera de la red.

Si no se establece nada en las opciones, verifique si tiene configurada la variable de entorno _NT_SYMBOL_PATH.

Steve Steiner
fuente
Gracias, esto fue todo para mí. Ocasionalmente cargaba 1 o 2 archivos de símbolos en la ventana Módulos, apuntando a símbolos de nuestras compilaciones a través de rutas UNC, o con menos frecuencia, apuntando a máquinas virtuales que ya no existen. No me di cuenta de que guardaba todas estas rutas en la configuración del depurador / símbolos.
Brian
6

Mi colega tenía un Visual Studio de respuesta muy lenta y, literalmente, tardó unos minutos en realizar un paso durante la depuración.

La causa principal resultó ser un programa antivirus (Threatfire) que se volvió loco mientras Visual Studio se estaba ejecutando. Matar su proceso arregló todo de inmediato.

mafu
fuente
Tuve una experiencia de depuración web horrible en el trabajo hasta que desactivé el antivirus de ESET. Después de presionar F5, mi tiempo de respuesta ha pasado de 2-3 minutos a 2-3 segundos.
James Hulse
1
Suspender ThreatFire por un tiempo también me ayudó mucho, ¡gracias! (Apagar Avast temporalmente también ayudó un poco, pero no tanto).
Jon Coombs
Malwarebytes fue la causa de mi problema. Dejarlo solucionó la lentitud.
Ben Rubin
También estoy usando Malwarebytes ... Después de salir, la depuración de VisualStudio es mucho más rápida. El inicio de depuración era de 15 segundos antes, ahora es de 2 segundos) .. ¡Gracias!
BlueDev
5

En mi caso, cambiar el símbolo de depuración "Cargar automáticamente el símbolo para" de la opción "Todos los módulos" a "Solo los módulos especificados" resolvió el problema. Puede cambiar esta opción desde el menú HerramientasOpcionesDepuraciónSímbolos .

cahit beyaz
fuente
3

Una causa diferente más ... Cómo encontrar el problema

Para mí fue la opción ShowOtherThreadIpMarkers . Un valor de 1 hace que Visual Studio (2010) sea insoportablemente lento (3-5 segundos por cada paso de depuración. Con un valor de 0, vuelve a ser rápido.

¿Cuál es esa opción? No tengo idea. No pude encontrarlo a través de la interfaz de usuario de Visual Studio. Desmarqué todas las opciones de depuración posibles allí y nada funcionó.

Así que fui a Importar / Exportar configuración y cargué mi configuración anterior que había guardado anteriormente yendo hacia atrás en el tiempo hasta que Visual Studio fue rápido nuevamente, luego comparé los archivos de configuración vs ..., etc., etc.

Me gustaría comentar que si carga la configuración mientras está en modo de depuración detenido en un punto de interrupción, entrará en vigencia inmediatamente. No es necesario detener el depurador y reiniciar.

marcelloptr
fuente
+1 Gracias, este también fue mi problema con una aplicación web C # en VS2015. Inhabilité la opción "Mostrar subprocesos en origen" en la barra de herramientas durante la depuración y el problema desapareció. Si la opción no está disponible en la barra de herramientas, puede encontrarla haciendo clic derecho en cualquier hilo dentro de la ventana de Temas.
Groo
2

Del blog de ScottGu vinculado por Travis: "Otro problema de rendimiento del que he oído hablar recientemente es un problema del que algunas personas han informado que se han encontrado con el complemento de la barra Google. Por alguna razón, esto a veces puede causar grandes retrasos al adjuntar el Visual Studio depurador en el navegador. Si observa retrasos prolongados en la carga de la aplicación web y tiene la barra Google (u otras barras de herramientas) instalada, puede intentar desinstalarlas para ver si esa es la causa del problema ".

Gato zimmermann
fuente
¿Tiene instalada la barra Google? Incluso decir no es útil para los futuros lectores de esta pregunta.
Cat Zimmermann
Abrí IE y no se muestra ninguna barra de herramientas, ¿significa que no tengo ninguna barra de herramientas instalada y no afectará a Visual Studio? :-)
George2
2
Guau. Pensé que no tenía sentido, pero simplemente lo desinstalé y mi máquina volvió al modo utilizable
orellabac
1
Otro complemento al que se culpa es LastPass. ¿Es esto solo un problema con IE o puede un complemento en cualquier navegador afectar las cosas?
Denise Skidmore
1
@DeniseSkidmore Eres increíble, me gustaría poder votar más de una vez. Todas estas otras soluciones y nada estaba ayudando ... luego leí su comentario, deshabilité el complemento LastPass IE y, de repente, volvió a ser rápido. Confirmé que este era el problema al volver a habilitar el complemento y se ralentizó. ¡¡¡¡GRACIAS!!!!
Lews Therin
2

Para mí, ejecutar bajo el depurador fue aproximadamente 10 veces más lento que ejecutarlo sin depurar.

Después de probar todas las soluciones sugeridas aquí, revisé todas las configuraciones del depurador y las habilité / deshabilité para ver si hacía una diferencia.

Para mí, resultó que deshabilitar la optimización Suppress JIT en la carga del módulo en la configuración de depuración mejoró enormemente las cosas.

Ben Hughes
fuente
1

Asegúrese de no tener asignaciones de red obsoletas a servidores que ya no existen (los tiempos de espera de la red lo matarán). O use algo como Process Monitor para ver si una red (u otro error de archivo) parece estar bloqueando durante mucho tiempo.

Michael Burr
fuente
Process Monitor es una herramienta genial. :-) Pero, ¿qué opción en Process Monitor podría usarse para ver "si una red (u otro error de archivo) parece estar bloqueando durante mucho tiempo"?
George2
Buscaría cosas como errores al intentar abrir un archivo o cuánto tardan las operaciones (no olvide que hay elementos de datos que es posible que no vea, como 'Duración' que puede seleccionar en Opciones / Seleccionar columnas ...) . Utilice los filtros y los aspectos destacados a su favor.
Michael Burr
Hola Michael Burr, en Process Monitor te refieres a monitorear el proceso VSTS en sí mismo o monitorear todos los procesos en la máquina.
George2
Definitivamente comenzaría con solo VSTS (devenv.exe) o se verá inundado de información que es casi seguro que no es útil.
Michael Burr
1
Querrá utilizar "Process Monitor" no "Process Explorer". Consulte technet.microsoft.com/en-us/sysinternals/bb896645.aspx . Las 2 utilidades tienen diferentes funciones. Procmon rastreará las operaciones de archivo y registro. Procexp es una utilidad útil, pero no proporciona ese tipo de rastreo.
Michael Burr
1

¿Está utilizando un symbolServer para descargar símbolos para archivos DLL de Windows?

Si es así, desactívelo, ya que puede llevar algo de tiempo, pero no esperaría que eso provocara grandes retrasos en una aplicación de consola básica.

Menú HerramientasOpcionesDepuraciónSímbolos .

Michael Prewecki
fuente
El contenido está vacío en Herramientas> Opciones> Depuración> Símbolos. ¿Alguna otra idea?
George2
1

Sé que este es un tema antiguo, pero por lo que vale ...

Descubrí que si he tenido una ventana separada de Internet Explorer abierta durante mucho tiempo, puede llevar hasta un minuto comenzar a depurar. Cierre todas las ventanas de Internet Explorer y la depuración comenzará inmediatamente.

Robbie
fuente
1

En mi caso, la barra Google estaba ralentizando mi depuración.

gplus_notifications_gadget.html siguió y siguió sobrecargando el depurador. Quería mantener la barra Google porque la uso con regularidad, así que desactivé el botón de notificación G + (el botón pequeño junto al botón de perfil). Es feliz ahora.

wcloister
fuente
1

Tuve el mismo problema en Visual Studio 2010, con la introducción del código terriblemente lenta (entre 3 y 10 segundos). Sin embargo, ninguna de las modificaciones de configuración anteriores funcionó.

Finalmente encontré la solución definitiva, que funcionaría en todos los problemas de publicación anteriores: restablezca todas sus configuraciones, como se describe aquí (esencialmente menú HerramientasImportar y exportar configuraciones , Restablecer todas las configuraciones , guardando las configuraciones existentes en un archivo (para revertir )).

Es posible que primero desee guardar una parte particular de su configuración. Por ejemplo, primero guardé mi tema de color (similar a Solarized) y luego lo restauré después del reinicio global.

Spikegee
fuente
1

Para mí, la configuración que eliminó el rendimiento (Windows 8 incluso se colgó excepto por el movimiento del mouse) fue desmarcar "Romper todos los procesos cuando un proceso se rompe" en el menú OpcionesDepuraciónGeneral .

Niels
fuente
1

Solo una causa más de una experiencia de depuración lenta de Visual Studio ...

Hace mucho tiempo, habilité FusionLogpara ver qué estaba causando un problema de enlace de ensamblaje.

Asegúrese de desactivarlo después de usarlo. ¿Por qué? Porque escribe una gran cantidad de datos de registro en el disco mientras está habilitado.

Esta es la FusionLogclave en el Registro de Windows ( regedit.exe):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Cambie los valores ForceLog, LogImmersivey LogResourseBindingsde 1 (habilitado) a 0 (deshabilitado).

Leniel Maccaferri
fuente
Eso era lo que me estaba pasando. También puede desactivar Fusion Log a través de su interfaz gráfica de usuario
Denise Skidmore
Puede ver si este es su problema al ejecutar Process Monitor, verá todos los accesos al archivo de registro de Fusion.
Denise Skidmore
0

También tuve este problema, pero no tenía nada que ver con los puntos de interrupción en mi caso. Fueron atajos de código que agregué en la ventana de tareas:

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

Estoy seguro de que hay otras formas en que podría ver un problema como este, pero hay un error en alguna parte que me causó este problema ... eliminar todas mis opciones lo habría solucionado, pero eso es algo que no quería hacer. Entonces, lo depuré y escribí sobre él en mi blog ... tu problema suena como el mío.

shawn
fuente
El vínculo está roto: "El recurso que está buscando se eliminó, se cambió de nombre o no está disponible temporalmente".
Peter Mortensen
0

Algo que me ha funcionado es asegurarme de que no haya puntos de interrupción condicionales. Aparte de eso, he tenido éxito solucionando la depuración lenta simplemente reiniciando Visual Studio y abriendo solo una instancia de Visual Studio a la vez.

jjxtra
fuente
0

Tuve un problema similar y ninguna de las otras orientaciones pareció ayudar. Había reiniciado en vano. Eliminé todos los puntos de interrupción, eliminé el archivo .suo, verifiqué que los símbolos no se estuvieran cargando desde fuentes externas y verifiqué que no existían rutas en la aplicación que no estuvieran disponibles.

Entonces, pensé en limpiar la solución. Noté en la ventana de salida que C # IntelliSense informó un problema al limpiar:

Hubo un problema al leer los metadatos de '{B0C3592F-F0D1-4B79-BE20-3AD610B07C23}' ('El sistema no puede encontrar el archivo especificado'). Es posible que IntelliSense no funcione correctamente hasta que se vuelva a cargar la solución.

En este caso, una vez que descubra el mensaje de error, le indicará exactamente cómo resolverlo. (¡Buen trabajo en el texto de error, mal trabajo en la visibilidad!) Descargué los proyectos de la solución y luego los recargué. Luego pude ejecutar con éxito una solución limpia . Funcionó, y el depurador también.

Mike L
fuente
0

Cerrar la ventana "Autos" mejoró la depuración para mí en Visual Studio 2008 para una gran solución nativa de C ++.

Ocultarlo no funcionará. Necesita estar cerrado.

javs
fuente
0

Experimenté la misma desaceleración y desconectarme de la red solucionó el problema para mí, como han indicado otros comentarios y respuestas (pero, por supuesto, esa no es una solución ideal).

Para mi caso, este simple cambio solucionó mi solución: en las propiedades del proyecto en la pestaña de depuración, desactivé "Habilitar el proceso de alojamiento de Visual Studio" (estoy ejecutando Visual Studio 2010).

amalgamar
fuente
-9

Obtenga más memoria y una HD más rápida. Más detalles están aquí .

tsimon
fuente
1
No creo que sea un problema de H / W, ya que mi hardware es de memoria 4G + 2 CPU (2.33G), ¿es suficiente? Por cierto: no sufrí esto una semana antes, así que creo que debería haber algunos problemas de configuración.
George2
2
+1 Un consejo útil, no puedo creer que la gente rechace esto. Aunque eliminar su archivo .suo ayuda 10 veces más.
Andomar
1
El OP ni siquiera ha dicho cuál es su especificación. Si me estuviera aconsejando, me estaría aconsejando que obtenga más de 32 Gb de RAM y más rápido que mi ya rápido estado sólido.
Valamas