Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
In diesem Artikel werden die Einstellungen beschrieben, die Sie zum Konfigurieren von .NET-Debugging und Profilerstellung verwenden können.
Hinweis
Ab .NET 11 unterstützen Profilerumgebungsvariablen sowohl als auch DOTNETCORECLR Präfixe. Das DOTNET Präfix ist der neue Standard; CORECLR wird aus Gründen der Abwärtskompatibilität beibehalten und kann in Zukunft entfernt werden.
Diagnose aktivieren
- Konfiguriert, ob der Debugger, der Profiler und die EventPipe-Diagnose aktiviert oder deaktiviert sind.
- Wenn Sie diese Einstellung weglassen, ist die Diagnose aktiviert. Dies entspricht der Einstellung des Werts auf
1.
| Einstellungsname | Werte | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Umgebungsvariable | DOTNET_EnableDiagnostics |
1 – aktiviert0 – deaktiviert |
Profilerstellung aktivieren
- Konfiguriert, ob die Profilerstellung für den derzeit ausgeführten Prozess aktiviert ist.
- Wenn Sie diese Einstellung weglassen, ist die Profilerstellung deaktiviert. Dies entspricht der Einstellung des Werts auf
0. - Um einen Profiler zu laden, muss die Profilerstellungs-GUID und der Profilspeicherort auch mithilfe dieser Einstellungen konfiguriert werden.
| Einstellungsname | Werte | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Umgebungsvariable | DOTNET_ENABLE_PROFILING |
0 – deaktiviert1 – aktiviert |
Profiler-GUID
- Gibt die GUID des Profilers an, der in den derzeit ausgeführten Prozess geladen werden soll.
| Einstellungsname | Werte | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Umgebungsvariable |
CORECLR_PROFILER oder DOTNET_PROFILER |
string-guid |
Profilspeicherort
Sobald die Profilerstellung aktiviert ist, kann der Profiler auf zwei Arten geladen werden: mit Umgebungsvariablen (cross-plat) oder über die Registrierung (nur Windows). Die Profilerpfadumgebungsvariablen haben Vorrang vor einem COM-Bibliothekspfad in der Registrierung, wenn beide angegeben sind.
Umgebungsvariable (Cross-Plat)
- Gibt den Pfad zur Profiler-DLL an, die in den derzeit ausgeführten Prozess geladen werden soll (oder 32-Bit- oder 64-Bit-Prozess).
- Wenn mehr als eine Variable festgelegt ist, haben die bitspezifischen Variablen Vorrang. Sie geben an, welche Bitanzahl von Profiler geladen werden soll.
| Einstellungsname | Werte | |
|---|---|---|
| Umgebungsvariable |
CORECLR_PROFILER_PATH oder DOTNET_PROFILER_PATH |
Zeichenfolgenpfad |
| Umgebungsvariable |
CORECLR_PROFILER_PATH_32 oder DOTNET_PROFILER_PATH_32 |
Zeichenfolgenpfad |
| Umgebungsvariable |
CORECLR_PROFILER_PATH_64 oder DOTNET_PROFILER_PATH_64 |
Zeichenfolgenpfad |
| Umgebungsvariable |
CORECLR_PROFILER_PATH_ARM32 oder DOTNET_PROFILER_PATH_ARM32 |
Zeichenfolgenpfad |
| Umgebungsvariable |
CORECLR_PROFILER_PATH_ARM64 oder DOTNET_PROFILER_PATH_ARM64 |
Zeichenfolgenpfad |
Über die Registrierung (nur Windows)
Wenn die DOTNET_PROFILER_PATH* während der Ausführung unter Windows nicht festgelegt sind, sucht Coreclr die CLSID aus DOTNET_PROFILER der Registrierung aus, um den vollständigen Pfad zur DLL des Profilers zu finden. Genau wie bei jeder COM-Server-DLL wird die CLSID des Profilers unter HKEY_CLASSES_ROOT nachschlagen, wodurch die Klassen von HKLM und HKCU zusammengeführt werden.
Exportieren von perf-Karten und Jit-Dumps
- Aktiviert oder deaktiviert perf-Karten oder Jit-Dumps. Mit diesen Dateien können Drittanbietertools wie das Linux-Tool
perflesbare Namen für dynamisch generierte Code- und vorkompilierte ReadyToRun-Module (R2R) bereitstellen. - Wenn Sie diese Einstellung weglassen, sind das Schreiben von Perf-Zuordnungs- und Jit-Dumpdateien beide deaktiviert. Dies entspricht der Einstellung des Werts auf
0. - Wenn perf-Zuordnungen deaktiviert sind, werden nicht alle verwalteten Aufrufe ordnungsgemäß aufgelöst.
- Abhängig von der Linux-Kernelversion werden beide Formate vom
perfTool unterstützt. - Das Aktivieren von perf-Karten oder Jit-Dumps kann bis zu 20% Mehraufwand verursachen, obwohl dies häufig viel weniger ist. Um die Leistungsauswirkungen zu minimieren, wird empfohlen, entweder perf-Karten oder Jit-Dumps selektiv zu aktivieren, aber nicht beides. Die Auswirkung tritt nur auf, wenn die Anwendung JITing-Code ist. Häufig tritt dies beim Start auf, kann aber später auftreten, wenn die Anwendung zum ersten Mal einen neuen Codepfad ausführt.
In der folgenden Tabelle werden perf-Karten und Jit-Karten verglichen.
| Format | Description | Unterstützt unter |
|---|---|---|
| Perf-Karten | Gibt aus /tmp/perf-<pid>.map, das symbolische Informationen für dynamisch generierten Code enthält.Emits /tmp/perfinfo-<pid>.map, die ReadyToRun (R2R)-Modulsymbolinformationen enthält und von PerfCollect verwendet wird. |
Perf-Karten werden in allen Linux-Kernelversionen unterstützt. |
| Jit-Dumps | Das Jit-Dumpformat ersetzt perf-Karten und enthält detailliertere symbolische Informationen. Wenn diese Option aktiviert ist, werden Jit-Dumps in /tmp/jit-<pid>.dump Dateien ausgegeben. |
Linux Kernel-Versionen 5.4 oder höher. |
| Einstellungsname | Werte | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Umgebungsvariable | DOTNET_PerfMapEnabled |
0 – deaktiviert1 – perf maps and jit dumps both enabled2 - jit dumps enabled3 – perf maps enabled |
Perf-Protokollmarkierungen
- Aktiviert oder deaktiviert das angegebene Signal, das als Markierung in den Perf-Protokollen akzeptiert und ignoriert werden soll.
- Wenn Sie diese Einstellung weglassen, wird das angegebene Signal nicht ignoriert. Dies entspricht der Einstellung des Werts auf
0.
| Einstellungsname | Werte | |
|---|---|---|
| runtimeconfig.json | N/A | N/A |
| Umgebungsvariable | DOTNET_PerfMapIgnoreSignal |
0 – deaktiviert1 – aktiviert |
Hinweis
Diese Einstellung wird ignoriert, wenn DOTNET_PerfMapEnabled weggelassen oder auf 0 (d. h. deaktiviert) festgelegt ist.