Partilhar via


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

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

Nota

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

Ativar diagnóstico

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

Ativar criação de perfil

  • Configura se a criação de perfil está habilitada para o processo em execução no momento.
  • Se você omitir essa configuração, a criação de perfil será desabilitada. Isso equivale a definir o valor como 0.
Nome da definição Valores
runtimeconfig.json N/A N/A
Variável de ambiente CORECLR_ENABLE_PROFILING 0 - deficientes
1 - ativado

GUID do criador de perfil

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

Localização 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 bitness terão precedência. Eles especificam qual bitness do profiler carregar.
  • Para obter mais informações, consulte Localizando a biblioteca do criador de perfil.
Nome da definição Valores
Variável de ambiente CORECLR_PROFILER_PATH caminho da cadeia de caracteres
Variável de ambiente CORECLR_PROFILER_PATH_32 caminho da cadeia de caracteres
Variável de ambiente CORECLR_PROFILER_PATH_64 caminho da cadeia de caracteres

Exportar mapas perf e jit dumps

  • Habilita ou desabilita a ativação seletiva de mapas perf ou jit dumps. Esses arquivos permitem que ferramentas de terceiros, como a ferramenta Linux perf , identifiquem sites de chamada para código gerado dinamicamente e módulos ReadyToRun (R2R) pré-compilados.
  • Se você omitir essa configuração, a gravação de arquivos perf map e jit dump será desabilitada. Isso equivale a definir o valor como 0.
  • Quando os mapas perf são desativados, nem todos os sites de chamada gerenciados serão resolvidos corretamente.
  • Dependendo da versão do kernel Linux, ambos os formatos são suportados perf pela ferramenta.
  • Habilitar mapas perf ou jit dumps causa uma sobrecarga de 10-20%. Para minimizar o impacto no desempenho, é recomendável habilitar seletivamente mapas perf ou jit dumps, mas não ambos.

A tabela a seguir compara mapas perf e jit maps.

Formato Description Suportado em
Mapas de Perf Emite /tmp/perf-<pid>.map, que contém informações simbólicas para código gerado dinamicamente.
Emits /tmp/perfinfo-<pid>.map, que inclui informações do símbolo do módulo ReadyToRun (R2R) e é usado pelo PerfCollect.
Os mapas Perf são suportados em todas as versões do kernel Linux.
Despejos de Jit O formato jit dump substitui os mapas perf e contém informações simbólicas mais detalhadas. Quando ativado, os despejos jit são enviados para /tmp/jit-<pid>.dump arquivos. Linux kernel versões 5.4 ou superior.
Nome da definição Valores
runtimeconfig.json N/A N/A
Variável de ambiente COMPlus_PerfMapEnabled ou DOTNET_PerfMapEnabled 0 - deficientes
1 - Mapas Perf e Jit Dumps ambos ativados
2 - Dumps JIT ativados
3 - Mapas PERF ativados

Marcadores de log Perf

  • Habilita ou desabilita o sinal especificado a ser aceito e ignorado como um marcador nos logs de perf.
  • Se você omitir essa configuração, o sinal especificado não será ignorado. Isso equivale a definir o valor como 0.
Nome da definição Valores
runtimeconfig.json N/A N/A
Variável de ambiente COMPlus_PerfMapIgnoreSignal ou DOTNET_PerfMapIgnoreSignal 0 - deficientes
1 - ativado

Nota

Essa configuração será ignorada se DOTNET_PerfMapEnabled for omitida ou definida como 0 (ou seja, desabilitada).