Opcje konfiguracji środowiska uruchomieniowego na potrzeby debugowania i profilowania

W tym artykule szczegółowo przedstawiono ustawienia, których można użyć do skonfigurowania debugowania i profilowania platformy .NET.

Uwaga

Program .NET 6 standardizuje prefiks DOTNET_ zamiast COMPlus_ zmiennych środowiskowych, które konfigurują zachowanie czasu wykonywania platformy .NET. COMPlus_ Jednak prefiks będzie nadal działać. Jeśli używasz poprzedniej wersji środowiska uruchomieniowego platformy .NET, nadal należy użyć prefiksu COMPlus_ dla zmiennych środowiskowych.

Włączanie diagnostyki

  • Określa, czy debuger, profiler i diagnostyka EventPipe są włączone lub wyłączone.
  • Jeśli to ustawienie zostanie pominięte, zostanie włączona diagnostyka. Jest to równoważne ustawieniu wartości na 1.
Nazwa ustawienia Wartości
runtimeconfig.json Brak Brak
Zmienna środowiskowa COMPlus_EnableDiagnostics lub DOTNET_EnableDiagnostics 1 -Włączone
0 -Wyłączone

Włączanie profilowania

  • Określa, czy profilowanie jest włączone dla aktualnie uruchomionego procesu.
  • Jeśli to ustawienie zostanie pominięte, profilowanie zostanie wyłączone. Jest to równoważne ustawieniu wartości na 0.
Nazwa ustawienia Wartości
runtimeconfig.json Brak Brak
Zmienna środowiskowa CORECLR_ENABLE_PROFILING 0 -Wyłączone
1 -Włączone

Identyfikator GUID profilera

  • Określa identyfikator GUID profilera do załadowania do aktualnie uruchomionego procesu.
Nazwa ustawienia Wartości
runtimeconfig.json Brak Brak
Zmienna środowiskowa CORECLR_PROFILER string-guid

Lokalizacja profilera

  • Określa ścieżkę do biblioteki DLL profilera do załadowania do aktualnie uruchomionego procesu (lub procesu 32-bitowego lub 64-bitowego).
  • Jeśli ustawiono więcej niż jedną zmienną, zmienne specyficzne dla bitów mają pierwszeństwo. Określają bitowość profilera do załadowania.
  • Aby uzyskać więcej informacji, zobacz Znajdowanie biblioteki profilera.
Nazwa ustawienia Wartości
Zmienna środowiskowa CORECLR_PROFILER_PATH ścieżka-ciągu
Zmienna środowiskowa CORECLR_PROFILER_PATH_32 ścieżka-ciągu
Zmienna środowiskowa CORECLR_PROFILER_PATH_64 ścieżka-ciągu

Eksportowanie map wydajności i zrzutów jit

  • Włącza lub wyłącza selektywne włączanie map wydajności lub zrzutów jit. Te pliki umożliwiają narzędziom innych firm, takim jak narzędzie systemu Linux perf , identyfikowanie witryn wywołań dla dynamicznie generowanego kodu i wstępnie skompilowanych modułów ReadyToRun (R2R).
  • Jeśli to ustawienie zostanie pominięte, zapisywanie plików mapy wydajności i zrzutu jit jest wyłączone. Jest to równoważne ustawieniu wartości na 0.
  • Gdy mapy wydajności są wyłączone, nie wszystkie zarządzane wywołania zostaną prawidłowo rozwiązane.
  • W zależności od wersji jądra systemu Linux oba formaty są obsługiwane przez perf narzędzie.
  • Włączenie map wydajności lub zrzutów jit powoduje obciążenie 10–20%. Aby zminimalizować wpływ na wydajność, zaleca się selektywne włączanie map wydajności lub zrzutów jit, ale nie obu.

W poniższej tabeli porównaliśmy mapy wydajności i mapy jit.

Format opis Obsługiwane w systemie
Mapy wydajności Emituje /tmp/perf-<pid>.mapwartość , która zawiera informacje symboliczne dla dynamicznie generowanego kodu.
Emituje element , który zawiera informacje o symbolu /tmp/perfinfo-<pid>.mapmodułu ReadyToRun (R2R) i jest używany przez moduł PerfCollect.
Mapy wydajności są obsługiwane we wszystkich wersjach jądra systemu Linux.
Zrzuty Jit Format zrzutu jit zastępuje mapy wydajności i zawiera bardziej szczegółowe informacje symboliczne. Po włączeniu zrzuty jit są danymi wyjściowymi plików /tmp/jit-<pid>.dump . Jądra systemu Linux w wersji 5.4 lub nowszej.
Nazwa ustawienia Wartości
runtimeconfig.json Brak Brak
Zmienna środowiskowa COMPlus_PerfMapEnabled lub DOTNET_PerfMapEnabled 0 -Wyłączone
1 - Mapy wydajności i zrzuty jit są włączone
2 - Włączone zrzuty jit
3 - Włączone mapy wydajności

Znaczniki dziennika wydajności

  • Włącza lub wyłącza akceptowanie i ignorowanie określonego sygnału jako znacznika w dziennikach wydajności.
  • Jeśli to ustawienie zostanie pominięte, określony sygnał nie zostanie zignorowany. Jest to równoważne ustawieniu wartości na 0.
Nazwa ustawienia Wartości
runtimeconfig.json Brak Brak
Zmienna środowiskowa COMPlus_PerfMapIgnoreSignal lub DOTNET_PerfMapIgnoreSignal 0 -Wyłączone
1 -Włączone

Uwaga

To ustawienie jest ignorowane, jeśli DOTNET_PerfMapEnabled zostanie pominięty lub ustawiony na 0 wartość (czyli wyłączone).