Opciones de configuración del ejecución para la depuración y la generación de perfiles
En este artículo se detallan los valores que se pueden usar para configurar la depuración y la generación de perfiles de .NET.
Nota:
.NET 6 estandariza en el prefijo DOTNET_
en lugar de en COMPlus_
para las variables de entorno que configuran el comportamiento en tiempo de ejecución de .NET. Sin embargo, el prefijo COMPlus_
seguirá funcionando. Si usa una versión anterior del runtime de .NET, debe seguir usando el prefijo COMPlus_
para las variables de entorno.
Habilitación de diagnósticos
- Configura si el depurador, el generador de perfiles y los diagnósticos de EventPipe están habilitados o deshabilitados.
- Si se omite esta configuración, se habilitan los diagnósticos. Esto es equivalente a establecer el valor en
1
.
Nombre de valor | Valores | |
---|---|---|
runtimeconfig.json | N/D | N/D |
Variable del entorno | COMPlus_EnableDiagnostics o DOTNET_EnableDiagnostics |
1 : habilitado.0 : deshabilitado. |
Habilitación de la generación de perfiles
- Configura si la generación de perfiles está habilitada para el proceso que se ejecuta actualmente.
- Si se omite esta configuración, la generación de perfiles está deshabilitada. Esto es equivalente a establecer el valor en
0
.
Nombre de valor | Valores | |
---|---|---|
runtimeconfig.json | N/D | N/D |
Variable del entorno | CORECLR_ENABLE_PROFILING |
0 : deshabilitado.1 : habilitado. |
GUID de generador de perfiles
- Especifica el GUID del generador de perfiles que se va a cargar en el proceso que se ejecuta actualmente.
Nombre de valor | Valores | |
---|---|---|
runtimeconfig.json | N/D | N/D |
Variable del entorno | CORECLR_PROFILER |
string-guid |
Ubicación del generador de perfiles
- Especifica la ruta de acceso a la biblioteca de vínculos dinámicos del generador de perfiles que se va a cargar en el proceso que se ejecuta actualmente (proceso de 32 bits o de 64 bits).
- Si se establece más de una variable, las variables concretas de valor de bits tienen prioridad. Especifican el valor de bits del generador de perfiles que se va a cargar.
- Para obtener más información, vea Búsqueda de la biblioteca del generador de perfiles.
Nombre de valor | Valores | |
---|---|---|
Variable del entorno | CORECLR_PROFILER_PATH |
string-path |
Variable del entorno | CORECLR_PROFILER_PATH_32 |
string-path |
Variable del entorno | CORECLR_PROFILER_PATH_64 |
string-path |
Exportación de mapas de rendimiento y volcados de jit
- Habilita o deshabilita la habilitación selectiva de mapas de rendimiento o volcados jit. Estos archivos permiten que herramientas de terceros, como la herramienta Linux
perf
, identifiquen los sitios de llamada para el código generado dinámicamente y los módulos ReadyToRun (R2R) precompilados. - Si omite esta configuración, la escritura de archivos de mapa de rendimiento y volcado de jit está deshabilitada. Esto es equivalente a establecer el valor en
0
. - Cuando se deshabilitan las asignaciones de perf, no todas las ubicaciones de llamada administradas se resuelven correctamente.
- En función de la versión del kernel de Linux, la herramienta
perf
admite ambos formatos. - La habilitación de mapas de rendimiento o volcados de jit provoca una sobrecarga del 10 al 20 %. Para minimizar el impacto en el rendimiento, se recomienda habilitar de forma selectiva asignaciones de rendimiento o volcados jit, pero no ambos.
En la tabla siguiente se comparan los mapas de rendimiento y los mapas jit.
Formato | Descripción | Se admite en |
---|---|---|
Asignaciones de rendimiento | /tmp/perf-<pid>.map Emite, que contiene información simbólica para el código generado dinámicamente.Emite /tmp/perfinfo-<pid>.map , que incluye información de símbolos del módulo ReadyToRun (R2R) y la usa PerfCollect. |
Las asignaciones de rendimiento son compatibles con todas las versiones de kernel de Linux. |
Volcados de jit | El formato de volcado de jit reemplaza los mapas de rendimiento y contiene información simbólica más detallada. Cuando se habilita, los volcados de jit se envían a los archivos /tmp/jit-<pid>.dump . |
Versiones del kernel de Linux 5.4 o posteriores. |
Nombre de valor | Valores | |
---|---|---|
runtimeconfig.json | N/D | N/D |
Variable del entorno | COMPlus_PerfMapEnabled o DOTNET_PerfMapEnabled |
0 : deshabilitado.1 - mapas de rendimiento y volcados de memoria de jit habilitados2 - volcados de memoria jit habilitados3 - asignaciones de rendimiento habilitadas |
Marcadores del registro de rendimiento
- Habilita o deshabilita la señal especificada que se va a aceptar y omitir como marcador en los registros de rendimiento.
- Si se omite este valor, la señal especificada no se pasa por alto. Esto es equivalente a establecer el valor en
0
.
Nombre de valor | Valores | |
---|---|---|
runtimeconfig.json | N/D | N/D |
Variable del entorno | COMPlus_PerfMapIgnoreSignal o DOTNET_PerfMapIgnoreSignal |
0 : deshabilitado.1 : habilitado. |
Nota:
Este valor se pasa por alto si DOTNET_PerfMapEnabled se omite o se establece en 0
(es decir, deshabilitado).