Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra in dettaglio le impostazioni che è possibile usare per configurare il debug e la profilatura di .NET.
Annotazioni
A partire da .NET 11, le variabili di ambiente del profiler supportano sia DOTNETCORECLR i prefissi che i prefissi. Il DOTNET prefisso è il nuovo standard. CORECLR Viene mantenuto per la compatibilità con le versioni precedenti e potrebbe essere rimosso in futuro.
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 della impostazione | Valori | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Variabile di ambiente | DOTNET_EnableDiagnostics |
1 - abilitato0 - 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. - Per caricare un profiler, oltre ad abilitare la profilatura, è necessario configurare anche il GUID del profiler e il percorso del profiler usando queste impostazioni.
| Nome della impostazione | Valori | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Variabile di ambiente | DOTNET_ENABLE_PROFILING |
0 - disabilitata1 - abilitato |
Profiler GUID
- Specifica il GUID del profiler da caricare nel processo in esecuzione.
| Nome della impostazione | Valori | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Variabile di ambiente |
CORECLR_PROFILER o DOTNET_PROFILER |
string-guid |
Posizione del profiler
Una volta abilitata la profilatura, il profiler può essere caricato in due modi: con variabili di ambiente (cross-plat) o tramite il Registro di sistema (solo Windows). Le variabili di ambiente del percorso del profiler hanno la precedenza su qualsiasi percorso della libreria COM nel Registro di sistema, se vengono specificati entrambi.
Variabile di ambiente (cross-plat)
- Specifica il percorso della DLL del profiler da caricare nel processo attualmente in esecuzione (o processo a 32 bit o a 64 bit).
- Se sono impostate più variabili, le variabili specifiche per la velocità in bit hanno la precedenza. Specificano il livello di bit del profiler da caricare.
| Nome della impostazione | Valori | |
|---|---|---|
| Variabile di ambiente |
CORECLR_PROFILER_PATH o DOTNET_PROFILER_PATH |
string-path |
| Variabile di ambiente |
CORECLR_PROFILER_PATH_32 o DOTNET_PROFILER_PATH_32 |
string-path |
| Variabile di ambiente |
CORECLR_PROFILER_PATH_64 o DOTNET_PROFILER_PATH_64 |
string-path |
| Variabile di ambiente |
CORECLR_PROFILER_PATH_ARM32 o DOTNET_PROFILER_PATH_ARM32 |
string-path |
| Variabile di ambiente |
CORECLR_PROFILER_PATH_ARM64 o DOTNET_PROFILER_PATH_ARM64 |
string-path |
Tramite il Registro di sistema (solo Windows)
Quando le DOTNET_PROFILER_PATH* non sono impostate durante l'esecuzione in Windows, coreclr cerca CLSID dal DOTNET_PROFILER Registro di sistema per trovare il percorso completo della DLL del profiler. Proprio come con qualsiasi DLL del server COM, il CLSID del profiler viene cercato in HKEY_CLASSES_ROOT, che unisce le classi da HKLM e HKCU.
Esportare mappe delle prestazioni e dump jit
- Abilita o disabilita le mappe delle prestazioni o i dump jit. Questi file consentono agli strumenti di terze parti, ad esempio lo strumento Linux
perf, di fornire nomi leggibili per i moduli ReadyToRun (R2R) generati dinamicamente. - Se si omette questa impostazione, la scrittura di file di dump jit e mapping delle prestazioni è disabilitata. Equivale a impostare il valore su
0. - Quando le mappe delle prestazioni sono disabilitate, non tutte le chiamate gestite verranno risolte correttamente.
- A seconda della versione del kernel Linux, entrambi i formati sono supportati dallo
perfstrumento. - L'abilitazione delle mappe delle prestazioni o dei dump jit può causare fino a un sovraccarico di 20%, anche se spesso è molto meno. Per ridurre al minimo l'impatto sulle prestazioni, è consigliabile abilitare in modo selettivo le mappe delle prestazioni o i dump jit, ma non entrambi. L'impatto si verifica solo quando l'applicazione è codice JITing. Spesso si verifica all'avvio, ma può verificarsi in un secondo momento se l'applicazione esegue un nuovo percorso di codice per la prima volta.
Nella tabella seguente vengono confrontate le mappe delle prestazioni e le mappe jit.
| Formato | Description | Supportato in |
|---|---|---|
| Mappe delle prestazioni |
/tmp/perf-<pid>.mapGenera , che contiene informazioni simboliche per il codice generato in modo dinamico./tmp/perfinfo-<pid>.mapGenera , 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 abilitata, i dump jit vengono restituiti ai /tmp/jit-<pid>.dump file. |
Kernel Linux versione 5.4 o successiva. |
| Nome della impostazione | Valori | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Variabile di ambiente | DOTNET_PerfMapEnabled |
0 - disabilitata1 - mappe delle prestazioni e dump jit entrambi abilitati2 - Dump jit abilitati3 - Mappe delle prestazioni abilitate |
Indicatori di log delle prestazioni
- Abilita o disabilita il segnale specificato da accettare e ignorare come marcatore nei log delle prestazioni.
- Se si omette questa impostazione, il segnale specificato non viene ignorato. Equivale a impostare il valore su
0.
| Nome della impostazione | Valori | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Variabile di ambiente | DOTNET_PerfMapIgnoreSignal |
0 - disabilitata1 - abilitato |
Annotazioni
Questa impostazione viene ignorata se DOTNET_PerfMapEnabled viene omesso o impostato su 0 (ovvero disabilitato).