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 - habilitado0 -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 -desabilitado1 - 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 -desabilitado1 - mapas de desempenho e despejos jit habilitados2 – despejos jit habilitados3 – 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 -desabilitado1 – Habilitado |
Observação
Essa configuração será ignorada se DOTNET_PerfMapEnabled for omitido ou definido como 0
(ou seja, desabilitado).