Otimização e Depuração JIT

Este tópico se aplica a:

Edição

Visual Basic

C#

C++

Desenvolvedores Web

Express

Somente Gerenciador

Padrão

Somente Gerenciador

PRO e equipe

Somente Gerenciador

Legenda de tabela:

Aplica-se

Não é aplicada

Comando ou comandos oculta por padrão.

Quando você depurar um aplicativo gerenciado, Visual Studio suprime a otimização de código just-in-time (JIT) por padrão.Eliminando a otimização JIT significa que você está depurando o código não otimizado.O código será executado um pouco mais lento porque ele não é otimizado, mas sua experiência de depuração é muito mais completa.Depurar o código otimizado é mais difícil e recomendado somente se você encontrar um erro que ocorre em código otimizado mas não pode ser reproduzido com a versão não otimizada.

Otimização JIT é controlada no Visual Studio pela opção Suppress JIT optimization on module load.Você pode encontrar essa opção na página General sob o nó Debugging na caixa de diálogo Options.

Se você desmarcar a opção Suppress JIT optimization on module load, você pode depurar código otimizado JIT, mas sua capacidade de depuração pode ser limitada porque o código otimizado não corresponde ao código de fonte.Como resultado, o depurador de janelas, como a janela Locals e Autos não podem exibir o máximo de informações como se estivessem presentes se você for depurando código não otimizado.

Outra importante diferença relaciona-se à depuração com Just My Code.Se você está depurando com Just My Code, o depurador considera o código otimizado para ser o código não usuário, que não deve ser exibido enquanto você está depurando.Consequentemente, se você está depurando código otimizado JIT, você provavelmente deseja desativar Just My Code.Para obter mais informações, consulte Como: Etapa em Apenas Meu Código.

Lembre-se que a opção Suppress JIT optimization on module load suprime a otimização de código quando módulos são carregados.Se você anexar a um processo que já estiver sendo executado, ele pode conter código que já está carregado, compilado e otimizado JIT.A opção Suppress JIT optimization on module load não tem nenhum efeito sobre esse código, embora ela afetará módulos que estão carregados depois que você anexar.Além disso, a opção Suppress JIT optimization on module load não afeta módulos, como WinForms.dll, que são criados com NGEN.

Consulte também

Tarefas

Como: Etapa em Apenas Meu Código

Conceitos

Processo de Execução Gerenciada

Outros recursos

Depurando código gerenciado

Anexando a processos em execução