Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo detalha as configurações que você pode usar para configurar a depuração e a criação de perfil do .NET.
Observação
A partir do .NET 11, as variáveis de ambiente do criador de perfil dão suporte a prefixos e DOTNET a ambosCORECLR. O DOTNET prefixo é o novo padrão; CORECLR é mantido para compatibilidade com versões anteriores e pode ser removido no futuro.
Habilitar diagnóstico
- Configura se o depurador, o criador de perfil e o diagnóstico eventPipe estão habilitados ou desabilitados.
- Se você omitir essa configuração, o diagnóstico será habilitado. Isso é equivalente a definir o valor como
1.
| Nome da configuração | Valores | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Variável de ambiente | DOTNET_EnableDiagnostics |
1 – Habilitado0 -desabilitado |
Habilitar 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 é equivalente a definir o valor como
0. - Para carregar um criador de perfil, além de habilitar a criação de perfil, o GUID do criador de perfil e o local do criador de perfil também precisam ser configurados usando essas configurações.
| Nome da configuração | Valores | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Variável de ambiente | DOTNET_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/A | N/A |
| Variável de ambiente |
CORECLR_PROFILER ou DOTNET_PROFILER |
string-guid |
Local do Criador de Perfil
Depois que a criação de perfil estiver habilitada, o criador de perfil poderá ser carregado de duas maneiras: com variáveis de ambiente (entre equipes) ou por meio do registro (somente Windows). As variáveis de ambiente de caminho do criador de perfil têm precedência sobre qualquer caminho de biblioteca COM no registro, se ambas forem especificadas.
Variável de ambiente (entre equipes)
- 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 bit do criador de perfil carregar.
| Nome da configuração | Valores | |
|---|---|---|
| Variável de ambiente |
CORECLR_PROFILER_PATH ou DOTNET_PROFILER_PATH |
string-path |
| Variável de ambiente |
CORECLR_PROFILER_PATH_32 ou DOTNET_PROFILER_PATH_32 |
string-path |
| Variável de ambiente |
CORECLR_PROFILER_PATH_64 ou DOTNET_PROFILER_PATH_64 |
string-path |
| Variável de ambiente |
CORECLR_PROFILER_PATH_ARM32 ou DOTNET_PROFILER_PATH_ARM32 |
string-path |
| Variável de ambiente |
CORECLR_PROFILER_PATH_ARM64 ou DOTNET_PROFILER_PATH_ARM64 |
string-path |
Por meio do registro (somente Windows)
Quando as DOTNET_PROFILER_PATH*variáveis de DOTNET_PROFILER ambiente não são definidas durante a execução no Windows, o coreclr procura o CLSID no registro para encontrar o caminho completo para a DLL do criador de perfil. Assim como acontece com qualquer DLL de servidor COM, o CLSID do criador de perfil é pesquisado em HKEY_CLASSES_ROOT, que mescla as classes de HKLM e HKCU.
Exportar mapas perf e despejos de jit
- Habilita ou desabilita mapas perf ou despejos de jit. Esses arquivos permitem que ferramentas de terceiros, como a ferramenta Linux
perf, forneçam nomes legíveis humanos para códigos gerados dinamicamente e módulos R2R (ReadyToRun) pré-compilados. - Se você omitir essa configuração, a gravação do mapa perf e os arquivos de despejo de jit serão desabilitados. Isso é equivalente a definir o valor como
0. - Quando os mapas perf 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
perfferramenta. - Habilitar mapas perf ou despejos de jit pode causar até 20% sobrecarga, embora muitas vezes seja muito menos. Para minimizar o impacto no desempenho, é recomendável habilitar seletivamente mapas perf ou despejos de jit, mas não ambos. O impacto ocorre apenas enquanto o aplicativo é o código JITing. Geralmente isso ocorre na inicialização, mas pode ocorrer mais tarde se o aplicativo estiver executando um novo caminho de código pela primeira vez.
A tabela a seguir compara mapas perf e mapas jit.
| Formato | Description | Com suporte em |
|---|---|---|
| Mapas de perf | Emite , que contém informações simbólicas /tmp/perf-<pid>.mappara código gerado dinamicamente.Emite , que inclui informações de símbolo do /tmp/perfinfo-<pid>.mapmódulo ReadyToRun (R2R) e é usado pelo PerfCollect. |
Há suporte para mapas perf em todas as versões do kernel do Linux. |
| Despejos de Jit | O formato de despejo jit substitui mapas perf e contém informações simbólicas mais detalhadas. Quando habilitados, os despejos jit são saída para /tmp/jit-<pid>.dump arquivos. |
Versões de kernel do Linux 5.4 ou superior. |
| Nome da configuração | Valores | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Variável de ambiente | DOTNET_PerfMapEnabled |
0 -desabilitado1 - mapas perf e despejos de jit habilitados2 – despejos de jit habilitados3 – mapas perf habilitados |
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 é equivalente a definir o valor como
0.
| Nome da configuração | Valores | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Variável de ambiente | DOTNET_PerfMapIgnoreSignal |
0 -desabilitado1 – Habilitado |
Observação
Essa configuração será ignorada se DOTNET_PerfMapEnabled for omitido ou definido 0 como (ou seja, desabilitado).