2010-07-14 16 views
7

Cuando empiezo a depurar mi aplicación web desde Inicio con depuración (F5) o adjuntándome al proceso de trabajo ASP.NET, cargará los ensamblajes de la aplicación muy lentamente para que pueda leer individualmente los nombres de mientras se desplazan por la barra de estado de VS2010.VS2010 Entrada de depuración muy lenta

Cuando comienzo la depuración, veo que MSVSMON.exe usa un 50% de CPU y bloqueos al 50%, lo que completa claramente un núcleo completo. También al ver que esto se describe como el Monitor de depuración remota de Visual Studio, estoy confundido si esto debería usarse, ya que estoy depurando todo lo local en mi máquina.

Estoy ejecutando mi entorno conectado virtualmente por RDP si eso podría estar relacionado con esto.

anfitrión de la máquina: Server 2008 Enterprise R2 Dualcore Xeon a 2,53 GHz

instancia virtual: Win7 Empresa 6 GB ram procesador de asignación completa

¿Le parece normal? ¿Debería MSVSMON incluso ejecutarse si estoy depurando localmente?

+0

No he tenido problemas de rendimiento con la depuración, local o remota, web o proceso normal. VS se ejecuta en x32 para mí con las máquinas remotas ejecutando x64. –

Respuesta

19

Menu.Debug.DeleteAllBreakpoints

trabajado para mí.

+0

No sé por qué pero esto también funcionó para mí.Desde la depuración hasta la página web finalizada, pasó de 20 segundos a 3 segundos. ¡Pero quiero saber por qué! Solo tuve un puñado de puntos de interrupción dentro del mismo proyecto (que nunca fueron golpeados). – Sire

+0

Definitivamente hay un error en VS2010 sobre esto y rompe los puntos que pierde o algo así. –

+2

Si agrega puntos de interrupción por nombre (break to function), el depurador debe analizar todos los símbolos de cada archivo DLL cargado para comprobar si algo coincide con el nombre dado. eso toma todo el tiempo, no es un error. –

4

Sí, msvsmon.exe se usará cuando depure un programa de 64 bits. Como Visual Studio es completamente de 32 bits, se necesita un depurador remoto para salvar la brecha.

No hay ninguna razón para suponer que la ralentización es causada por ser un depurador remoto. Trabajar poderosamente para encontrar y cargar los archivos .pdb sería probable. O accidentalmente tener activada la opción de depuración de modo mixto para que el depurador también vea todas las cargas DLL no administradas y encuentre símbolos para ellas. Estas son solo conjeturas, por supuesto.

3

La búsqueda de símbolos suele ser muy lenta al inicio de la depuración, especialmente si tiene configuradas una de las opciones de símbolos remotos y no ha configurado 'ignorar' en las distintas DLL que no tendrán símbolos en los servidores de MS.

Estos no solo son elementos como componentes de terceros de su código, sino que también enlazan archivos DLL inyectados por, por ejemplo, controladores de gráficos, por lo que vale la pena vigilar lo que está intentando cargar.

Al ejecutar Fiddler (http://www.fiddler2.com/fiddler2/) al iniciar la depuración, se mostrará si los símbolos se obtienen de forma remota.

Incluso si VS no está configurado explícitamente (en herramientas-> opciones-depuraciones) para la obtención remota de símbolos, seguirá la variable de entorno _NT_SYMBOL_PATH - verifica si eso está establecido y a qué apunta.

3

Tuve este mismo problema, aunque esta solución no lo hizo por mí. Al final, tuve que ir a Tools-> Options-> Debugging-> Symbols y desmarcar las ubicaciones del archivo Symbol (.pdb) y hacer clic en el botón Empty Symbol Cache. Después de eso, la depuración fue mucho mejor.

+1

Punto muy válido, este no es el escenario exacto que describo donde lo veo cargando MIS ensamblajes a la velocidad de 1 por segundo más o menos, pero si lo ve cargar ensamblajes que no le pertenecen reducirán drásticamente la entrada de depuración. La capacidad de depuración en el código .NET con el origen del símbolo es impresionante, pero la genialidad solo debe activarse para necesidades específicas y luego se debe apagar inmediatamente. –

0

Para mí, el problema era que tenía un PUP (programa potencialmente no deseado) instalado que ralentizaba los otros procesos. Después de un par de veces que MSVSMON estaba mostrando este comportamiento, me di cuenta de que el proceso Cltmng.exe (desde Search Protect por conducto) también estaba tomando una cantidad inusual de CPU, eliminando el problema.

Cuestiones relacionadas