Compartilhar via


Otimização e depuração JIT

Quando você depura um aplicativo gerenciado, o Visual Studio suprime a otimização de código Just-In-Time (JIT) por padrão. A supressão da otimização JIT significa que você está depurando código não otimizado. O código é executado um pouco mais lentamente porque não é otimizado, mas sua experiência de depuração é muito mais completa. A depuração de código otimizado é mais difícil e recomendada somente se você encontrar um bug no código otimizado que não pode ser reproduzido na versão não otimizada.

A otimização JIT é controlada no Visual Studio pela opção Suprimir otimização JIT no carregamento do módulo. Você pode encontrar essa opção na página Geral sob o nó Depuração na caixa de diálogo Opções.

Se você desmarcar a opção Suprimir otimização JIT no carregamento do módulo, poderá depurar o código JIT otimizado, mas sua capacidade de depuração poderá ser limitada porque o código otimizado não corresponde ao código-fonte. Como resultado, as janelas de depuração como as janelas Locais e Autos podem não exibir tanta informação quanto exibiriam se você estivesse depurando código não otimizado.

Outra diferença importante está relacionada à depuração com Apenas Meu Código. Se você estiver depurando com Apenas Meu Código, o depurador considerará o código otimizado como código de não usuário, que não deve ser exibido durante a depuração. Consequentemente, se estiver depurando código otimizado JIT, provavelmente será conveniente desativar Apenas Meu Código. Para obter mais informações, consulte Restringir a depuração a Apenas Meu Código.

Lembre-se de que a opção Suprimir otimização JIT no carregamento do módulo suprime a otimização de código quando os módulos são carregados. Se você anexar a um processo que já estiver em execução, ele poderá conter código já carregado, compilado por JIT e otimizado. A opção Suprimir otimização JIT no carregamento do módulo não tem efeito nesse código, embora afete os módulos que são carregados depois da anexação. Além disso, a opção Suprimir otimização JIT no carregamento do módulo não afeta módulos, como WinForms.dll, criados com NGEN.

Consulte também

Conceitos

Iniciar, interromper, avançar, executar código e parar depuração no Visual Studio

Processo de execução gerenciada

Outros recursos

Depurando código gerenciado

Anexar aos processos em execução com o Depurador do Visual Studio