Optimización y depuración JITJIT Optimization and Debugging

Cuando se depura una aplicación administrada, Visual StudioVisual Studio suprime la optimización del código just-in-time (JIT) de forma predeterminada.When you debug a managed application, Visual StudioVisual Studio suppresses optimization of just-in-time (JIT) code by default. Suprimir la optimización JIT significa que se está depurando código no optimizado.Suppressing JIT optimization means you are debugging non-optimized code. El código se ejecuta un poco más lentamente porque no se optimiza, pero la experiencia de depuración es mucho más profunda.The code runs a bit slower because it is not optimized, but your debugging experience is much more thorough. La depuración de código optimizado es más difícil, y sólo se recomienda si se detecta un error en el código optimizado que no se puede reproducir en la versión no optimizada.Debugging optimized code is harder and recommended only if you encounter a bug that occurs in optimized code but cannot be reproduced in the non-optimized version.

La optimización JIT se controla en Visual StudioVisual Studio por el Suprimir optimización JIT cargar el módulo opción.JIT optimization is controlled in Visual StudioVisual Studio by the Suppress JIT optimization on module load option. Puede encontrar esta opción en el General página en el depuración nodo en el opciones cuadro de diálogo.You can find this option on the General page under the Debugging node in the Options dialog box.

Si desactiva la Suprimir optimización JIT cargar el módulo opción, puede depurar código JIT optimizado, pero su capacidad de depuración puede ser limitada debido a que el código optimizado no coincide con el código fuente.If you clear the Suppress JIT optimization on module load option, you can debug optimized JIT code, but your ability to debug may be limited because the optimized code does not match the source code. Como resultado, ventanas del depurador, como la locales y automático ventana no se muestren tanta información como lo harían si se depurara código no optimizado.As a result, debugger windows such as the Locals and Autos window may not display as much information as they would if you were debugging non-optimized code.

Otra diferencia importante es relativa a la depuración con Sólo mi código.Another important difference concerns debugging with Just My Code. Si se depura con Sólo mi código, el depurador considera que el código optimizado no es del usuario, por lo que no debería mostrarse durante la depuración.If you are debugging with Just My Code, the debugger considers optimized code to be non-user code, which should not be displayed while you are debugging. Por consiguiente, si depura código optimizado JIT, probablemente desee desactivar Sólo mi código.Consequently, if you are debugging JIT optimized code, you probably want to turn Just My Code off. Para obtener más información, consulte restringir la ejecución paso a paso a solo mi código.For more information, see Restrict stepping to Just My Code.

Recuerde que el Suprimir optimización JIT cargar el módulo opción suprime la optimización del código cuando se cargan los módulos.Remember that the Suppress JIT optimization on module load option suppresses optimization of code when modules are loaded. Si se asocia a un proceso que ya se está ejecutando, éste puede contener código que ya esté cargado, con compilación y optimización JIT.If you attach to a process that is already running, it may contain code that is already loaded, JIT-compiled, and optimized. El Suprimir optimización JIT cargar el módulo opción no tiene ningún efecto en dicho código, pero sí a los módulos que se cargan después de adjuntar.The Suppress JIT optimization on module load option has no effect on such code, although it will affect modules that are loaded after you attach. Además, el Suprimir optimización JIT cargar el módulo opción no afecta a los módulos, como WinForms.dll, que se crean con NGEN.In addition, the Suppress JIT optimization on module load option does not affect modules, such as WinForms.dll, that are created with NGEN.

Vea tambiénSee Also

Depurar código administrado Debugging Managed Code
Desplazarse por el código con el depurador Navigating through Code with the Debugger
Adjuntar a procesos en ejecución Attach to Running Processes
Proceso de ejecución administradaManaged Execution Process