2012-09-03 15 views
6

¿Cuál es el efecto de la opción de depuración "Suppress JIT optimization on module load"?¿Cuál es el efecto de la opción de depuración "Suprimir la optimización de JIT en la carga del módulo"?

Recientemente tuve que desactivarlo para poder depurar con éxito una aplicación que usa un componente COM.

¿A qué arriesgo al apagarlo?

+0

posible duplicado de [Suprimir la optimización de JIT en la carga del módulo (solo gestionado)] (http://stackoverflow.com/questions/9564739/suppress-jit-optimization-on-module-load-managed-only) – nawfal

Respuesta

11

Suprimir la optimización JIT significa que está depurando código no optimizado. El código se ejecuta un poco más lento porque no está optimizado, pero su experiencia de depuración es mucho más completa. La depuración del código optimizado es más difícil y recomendable solo si se encuentra con un error que ocurre en el código optimizado pero no se puede reproducir en la versión no optimizada.

Si borra la opción Suprimir JIT optimización en la carga del módulo, puede depurar el código JIT optimizado, pero su capacidad de depuración puede estar limitada porque el código optimizado no coincide con el código fuente. Como resultado, las ventanas del depurador, como la ventana Locales y Autos, pueden no mostrar tanta información como lo harían si depurara un código no optimizado.

+0

Este conjunto la referencia de texto es: http://msdn.microsoft.com/en-us/library/ms241594.aspx –

2

Significa que el código JIT no se optimizará para la depuración. Por ejemplo:

private int Add(int x, int y) 
    { 
     int notUsed = 2; 
     return x + y; 
    } 

en esta variable código notUsed serán excluidos lado a otro código JIT por la optimización que no se requiere este código. Si comienza a depurar código optimizado puede parecer que no es el código que ha escrito (pero hará lo mismo). Otro ejemplo de optimización son los métodos en línea.

Cuestiones relacionadas