Opzioni di configurazione del runtime per il debug e la profilatura

Questo articolo illustra nel dettaglio le impostazioni che è possibile usare per configurare il debug e la profilatura .NET.

Nota

.NET 6 standardizza il prefisso DOTNET_ anziché COMPlus_ per le variabili di ambiente che configurano il comportamento di runtime di .NET. Tuttavia, il prefisso COMPlus_ continuerà a funzionare. Se si usa una versione precedente del runtime .NET, è comunque consigliabile usare il prefisso COMPlus_ per le variabili di ambiente.

Abilitare la diagnostica

  • Configura se il debugger, il profiler e la diagnostica EventPipe sono abilitati o disabilitati.
  • Se si omette questa impostazione, la diagnostica è abilitata. Equivale a impostare il valore su 1.
Nome impostazione Valori
runtimeconfig.json N/D N/D
Variabile di ambiente COMPlus_EnableDiagnostics oppure DOTNET_EnableDiagnostics 1 - abilitata
0 - disabilitata

Abilitare la profilatura

  • Configura se la profilatura è abilitata per il processo in esecuzione.
  • Se si omette questa impostazione, la profilatura è disabilitata. Equivale a impostare il valore su 0.
Nome impostazione Valori
runtimeconfig.json N/D N/D
Variabile di ambiente CORECLR_ENABLE_PROFILING 0 - disabilitata
1 - abilitata

GUID del profiler

  • Specifica il GUID del profiler da caricare nel processo in esecuzione.
Nome impostazione Valori
runtimeconfig.json N/D N/D
Variabile di ambiente CORECLR_PROFILER stringa-guid

Posizione del profiler

  • Specifica il percorso della DLL del profiler da caricare nel processo in esecuzione (o processo a 32 bit o a 64 bit).
  • Se sono impostate più variabili, le variabili specifiche per il numero di bit hanno la precedenza. Specificano il numero di bit del profiler da caricare.
  • Per altre informazioni, vedere Ricerca della libreria del profiler.
Nome impostazione Valori
Variabile di ambiente CORECLR_PROFILER_PATH stringa_percorso
Variabile di ambiente CORECLR_PROFILER_PATH_32 stringa_percorso
Variabile di ambiente CORECLR_PROFILER_PATH_64 stringa_percorso

Esportare mappe delle prestazioni e dump jit

  • Abilita o disabilita l'abilitazione selettiva delle mappe delle prestazioni o dei dump jit. Questi file consentono agli strumenti di terze parti, ad esempio lo strumento Linux perf, di identificare i siti di chiamata per il codice generato dinamicamente e i moduli ReadyToRun (R2R) precompilati.
  • Se si omette questa impostazione, la scrittura di mappe delle prestazioni e i file di dump jit vengono entrambi disabilitati. Equivale a impostare il valore su 0.
  • Quando le mappe delle prestazioni sono disabilitate, non tutti i siti di chiamata gestiti verranno risolti correttamente.
  • A seconda della versione del kernel Linux, entrambi i formati sono supportati dallo strumento perf.
  • L'abilitazione delle mappe delle prestazioni o dei dump jit causa un sovraccarico del 10-20%. Per ridurre al minimo l'impatto sulle prestazioni, è consigliabile abilitare in modo selettivo le mappe delle prestazioni o i dump jit, ma non entrambi.

Nella tabella seguente vengono confrontate le mappe delle prestazioni e le mappe jit.

Formato Descrizione Supportati in
Mappe delle prestazioni Genera /tmp/perf-<pid>.map, che contiene informazioni simboliche per il codice generato in modo dinamico.
Genera /tmp/perfinfo-<pid>.map, che include informazioni sui simboli del modulo ReadyToRun (R2R) e viene usato da PerfCollect.
Le mappe delle prestazioni sono supportate in tutte le versioni del kernel Linux.
Dump jit Il formato di dump jit sostituisce le mappe delle prestazioni e contiene informazioni simboliche più dettagliate. Se abilitati, l'output dei dump jit viene inserito in file /tmp/jit-<pid>.dump. Kernel Linux versione 5.4 o successiva.
Nome impostazione Valori
runtimeconfig.json N/D N/D
Variabile di ambiente COMPlus_PerfMapEnabled oppure DOTNET_PerfMapEnabled 0 - disabilitata
1 - mappe delle prestazioni e dump jit entrambi abilitati
2 - Dump jit abilitati
3 - Mappe delle prestazioni abilitate

Indicatori di log delle prestazioni

  • Abilita o disabilita il segnale specificato in modo che sia accettato o ignorato come indicatore nei log delle prestazioni.
  • Se si omette questa impostazione, il segnale specificato non viene ignorato. Equivale a impostare il valore su 0.
Nome impostazione Valori
runtimeconfig.json N/D N/D
Variabile di ambiente COMPlus_PerfMapIgnoreSignal oppure DOTNET_PerfMapIgnoreSignal 0 - disabilitata
1 - abilitata

Nota

Questa impostazione viene ignorata se l'impostazione DOTNET_PerfMapEnabled viene omessa o impostata su 0 (ovvero disabilitata).