2012-03-05 13 views
9

Si ejecuto una versión de lanzamiento en VS pero con un depurador adjunto. Así que puedo establecer puntos de interrupción e investigar el desmontaje del código optimizado. Normalmente, para ver todas las optimizaciones, necesito ejecutar SIN un depurador adjunto y desconectar el proceso en ejecución.Suprimir la optimización de JIT en la carga del módulo (solo administrada)

Desmarcando el interruptor "Suprimir JIT optimización en módulo de carga (solo administrado)" en Visual Studio es suficiente para traer el mismo resultado? Por 'mismo resultado' quiero decir: ¿las mismas instrucciones de la máquina (optimizadas) que al arrancar sin un depurador conectado?

Escuché que el compilador JIT solo utilizaría TODAS las opciones de optimización, si el ensamblaje era una compilación de lanzamiento y no se había instalado ningún depurador. Ahora me pregunto si este cambio podría facilitar mi depuración/inspección en vivo.

+0

¿Por qué no lo intentas? – svick

+0

Porque no aclararía ninguna regla. – JGrand

+0

Lo intenté y parece que hará lo mismo. pero no sé si esto es un comportamiento definido. –

Respuesta

3

Existen pequeñas diferencias en IL entre las versiones DEBUG y RELEASE, por lo que desea utilizar la versión RELEASE en este caso (es decir, todas las llamadas Debug.XXX se compilan en el caso de versión).

Desmarcar "Suprimir la optimización de JIT en la carga del módulo (solo gestionado)" debería permitir que JIT haga optimizaciones como si no hubiera un depurador conectado. No estoy enterado de ninguna diferencia entre estos 2 casos.

Cuestiones relacionadas