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>.mapEmite, 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 habilitados
2 - volcados de memoria jit habilitados
3 - 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).