Compartilhar via


Opções de configuração de runtime para depuração e criação de perfil

Este artigo detalha as configurações que você pode usar para a compilação e criação de perfil do .NET.

Observação

O .NET 6 usa o prefixo DOTNET_ como padrão em vez de COMPlus_ para variáveis de ambiente que configuram o comportamento de tempo de execução do .NET. No entanto, o prefixo COMPlus_ continuará funcionando. Se você estiver usando uma versão anterior do runtime do .NET, ainda deverá usar o prefixo COMPlus_ para variáveis de ambiente.

Habilitar diagnósticos

  • Configura se o depurador, o criador de perfil e o diagnóstico do EventPipe estiverem habilitados ou desabilitados.
  • Se você omitir essa configuração, o diagnóstico será habilitado. Isso é equivalente a definir o valor 1.
Nome da configuração Valores
runtimeconfig.json N/D N/D
Variável de ambiente COMPlus_EnableDiagnostics ou DOTNET_EnableDiagnostics 1 - habilitado
0 -desabilitado

Habilitar criação de perfil

  • Configura se a criação de perfil estiver habilitada para o processo em execução no momento.
  • Se você omitir essa configuração, a criação de perfil será desabilitada. Isso é equivalente a definir o valor 0.
Nome da configuração Valores
runtimeconfig.json N/D N/D
Variável de ambiente CORECLR_ENABLE_PROFILING 0 -desabilitado
1 - habilitado

GUID do criador de perfil

  • Especifica o GUID do criador de perfil a ser carregado no processo em execução no momento.
Nome da configuração Valores
runtimeconfig.json N/D N/D
Variável de ambiente CORECLR_PROFILER string-guid

Local do criador de perfil

  • Especifica o caminho para a DLL do criador de perfil a ser carregada no processo em execução no momento (ou processo de 32 bits ou 64 bits).
  • Se mais de uma variável for definida, as variáveis específicas de bits têm precedência. Eles especificam qual número de bit do criador de perfil carregar.
  • Para obter mais informações, consulte Localizar a biblioteca do criador de perfil.
Nome da configuração Valores
Variável de ambiente CORECLR_PROFILER_PATH string-path
Variável de ambiente CORECLR_PROFILER_PATH_32 string-path
Variável de ambiente CORECLR_PROFILER_PATH_64 string-path

Exportar mapas de desempenho e despejos jit

  • Habilita ou desabilita a habilitação seletiva de mapas de desempenho ou despejos jit. Esses arquivos permitem que ferramentas de terceiros, como a ferramenta perf Linux, identifiquem sites de chamadas para códigos gerados dinamicamente e módulos R2R (ReadyToRun) pré-compilados.
  • Se você omitir essa configuração, a gravação do mapa de desempenho e os arquivos de despejo jit serão desabilitados. Isso é equivalente a definir o valor 0.
  • Quando os mapas de desempenho estiverem desabilitados, nem todos os sites de chamadas gerenciados serão resolvidos corretamente.
  • Dependendo da versão do kernel do Linux, ambos os formatos são compatíveis com a ferramenta perf.
  • Habilitar mapas de desempenho ou despejos jit causa uma sobrecarga de 10 a 20%. Para minimizar o impacto no desempenho, é recomendável habilitar seletivamente mapas de desempenho ou despejos jit, mas não ambos.

A tabela a seguir compara mapas de desempenho e mapas jit.

Formatar Descrição Com suporte em
Mapas de desempenho Emite /tmp/perf-<pid>.map, que contém informações simbólicas para código gerado dinamicamente.
Emite /tmp/perfinfo-<pid>.map, que inclui informações de símbolo do módulo ReadyToRun (R2R) e é usado pelo PerfCollect.
Há suporte para mapas de desempenho em todas as versões do kernel do Linux.
Despejos Jit O formato de despejo jit substitui mapas de desempenho e contém informações simbólicas mais detalhadas. Quando habilitados, os despejos jit são saída para arquivos /tmp/jit-<pid>.dump. Versões de kernel do Linux 5.4 ou superior.
Nome da configuração Valores
runtimeconfig.json N/D N/D
Variável de ambiente COMPlus_PerfMapEnabled ou DOTNET_PerfMapEnabled 0 -desabilitado
1 - mapas de desempenho e despejos jit habilitados
2 – despejos jit habilitados
3 – mapas de desempenho habilitados

Marcadores de log desempenho

  • Habilita ou desabilita o sinal especificado a ser aceito e ignorado como um marcador nos logs de desempenho.
  • Se você omitir essa configuração, o sinal especificado não será ignorado. Isso é equivalente a definir o valor 0.
Nome da configuração Valores
runtimeconfig.json N/D N/D
Variável de ambiente COMPlus_PerfMapIgnoreSignal ou DOTNET_PerfMapIgnoreSignal 0 -desabilitado
1 – Habilitado

Observação

Essa configuração será ignorada se DOTNET_PerfMapEnabled for omitido ou definido como 0 (ou seja, desabilitado).