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 - ativado0 - 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 - deficientes1 - 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 - deficientes1 - Mapas Perf e Jit Dumps ambos ativados2 - Dumps JIT ativados3 - 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 - deficientes1 - ativado |
Nota
Essa configuração será ignorada se DOTNET_PerfMapEnabled for omitida ou definida como 0
(ou seja, desabilitada).