Laufzeitkonfigurationsoptionen für Debuggen und Profilerstellung

In diesem Artikel werden die Einstellungen beschrieben, mit denen Sie das Debuggen und die Profilerstellung in .NET konfigurieren können.

Hinweis

In .NET 6 ist das Präfix DOTNET_ statt COMPlus_ Standard für Umgebungsvariablen, die das .NET-Runtimeverhalten konfigurieren. Das Präfix COMPlus_ funktioniert jedoch weiterhin. Wenn Sie eine frühere Version der .NET-Runtime verwenden, sollten Sie weiterhin das Präfix COMPlus_ für Umgebungsvariablen verwenden.

Aktivieren der Diagnosefunktion

  • Konfiguriert, ob der Debugger, der Profiler und die EventPipe-Diagnose aktiviert oder deaktiviert sind
  • Wenn Sie diese Einstellung weglassen, wird die Diagnose aktiviert. Dies entspricht der Einstellung des Werts auf 1.
Einstellungsname Werte
runtimeconfig.json Nicht zutreffend Nicht zutreffend
Umgebungsvariable COMPlus_EnableDiagnostics oder DOTNET_EnableDiagnostics 1 – aktiviert
0 – deaktiviert

Aktivieren der Profilerstellung

  • Konfiguriert, ob die Profilerstellung für den aktuell laufenden Prozess aktiviert ist
  • Wenn Sie diese Einstellung weglassen, ist die Profilerstellung deaktiviert. Dies entspricht der Einstellung des Werts auf 0.
Einstellungsname Werte
runtimeconfig.json Nicht zutreffend Nicht zutreffend
Umgebungsvariable CORECLR_ENABLE_PROFILING 0 – deaktiviert
1 – aktiviert

GUID des Profilers

  • Gibt die GUID des Profilers an, der in den aktuell laufenden Prozess geladen werden soll
Einstellungsname Werte
runtimeconfig.json Nicht zutreffend Nicht zutreffend
Umgebungsvariable CORECLR_PROFILER string-guid

Speicherort des Profilers

  • Gibt den Pfad zur Profiler-DLL an, die in den aktuell laufenden Prozess geladen werden soll (32-Bit- oder 64-Bit-Paket)
  • Wenn mehr als eine Variable festgelegt ist, haben die für die Bitanzahl spezifischen Variablen Vorrang. Diese geben an, welche Bitanzahl von Profiler geladen werden soll.
  • Weitere Informationen finden Sie unter Suchen der Profilerbibliothek.
Einstellungsname Werte
Umgebungsvariable CORECLR_PROFILER_PATH string-path
Umgebungsvariable CORECLR_PROFILER_PATH_32 string-path
Umgebungsvariable CORECLR_PROFILER_PATH_64 string-path

Exportieren von Perf-Zuordnungen und Jit-Sicherungen

  • Aktiviert oder deaktiviert die selektive Aktivierung von Perf-Zuordnungen oder Jit-Sicherungen. Mit diesen Dateien können Drittanbietertools wie das perf-Tool von Linux zum Aufrufen von Websites für dynamisch generierten Code und vorkompilierte ReadyToRun(R2R)-Module identifizieren.
  • Wenn Sie diese Einstellung weglassen, ist das Schreiben von Perf-Zuordnungs- und Jit-Sicherungsdateien deaktiviert. Dies entspricht der Einstellung des Werts auf 0.
  • Wenn Perf-Zuordnungskarten deaktiviert sind, werden nicht alle verwalteten Aufrufstandorte ordnungsgemäß aufgelöst.
  • Abhängig von der Linux-Kernelversion werden beide Formate vom perf-Tool unterstützt.
  • Das Aktivieren von Perf-Zuordnungen oder Jit-Sicherungen führt zu einem Mehraufwand von 10 bis 20 %. Um die Leistungsbeeinträchtigung zu minimieren, wird empfohlen, entweder Perf-Zuordnungen oder Jit-Sicherungen zu aktivieren, aber nicht beides.

In der folgenden Tabelle werden Perf-Zuordnungen und Jit-Karten verglichen.

Format Beschreibung Unterstützt auf
Perf-Zuordnungen Gibt /tmp/perf-<pid>.map aus, der symbolische Informationen für dynamisch generierten Code enthält.
Gibt /tmp/perfinfo-<pid>.map aus, der ReadyToRun (R2R)-Modulsymbolinformationen enthält und von PerfCollect verwendet wird.
Perf-Zuordnungen werden in allen Linux-Kernelversionen unterstützt.
Jit-Sicherungen Das Jit-Sicherungsformat ersetzt Perf-Zuordnungen und enthält detailliertere symbolische Informationen. Wenn diese Option aktiviert ist, werden Jit-Sicherungen in /tmp/jit-<pid>.dump Dateien ausgegeben. Linux Kernel, Versionen 5.4 oder höher.
Einstellungsname Werte
runtimeconfig.json Nicht zutreffend Nicht zutreffend
Umgebungsvariable COMPlus_PerfMapEnabled oder DOTNET_PerfMapEnabled 0 – deaktiviert
1 – Perf-Zuordnungen und Jit-Sicherungen aktiviert
2 – Jit-Sicherungen aktiviert
3 – Perf-Zuordnungen aktiviert

Leistungsprotokollmarker

  • Aktiviert oder deaktiviert das angegebene Signal, um als Marker in den Leistungsprotokollen akzeptiert oder ignoriert zu werden.
  • Wenn Sie diese Einstellung weglassen, wird das angegebene Signal nicht ignoriert. Dies entspricht der Einstellung des Werts auf 0.
Einstellungsname Werte
runtimeconfig.json Nicht zutreffend Nicht zutreffend
Umgebungsvariable COMPlus_PerfMapIgnoreSignal oder DOTNET_PerfMapIgnoreSignal 0 – deaktiviert
1 – aktiviert

Hinweis

Diese Einstellung wird ignoriert, wenn DOTNET_PerfMapEnabled ausgelassen oder auf 0 festgelegt wird (d. h. deaktiviert).