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łączone0 -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łączone1 -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>.map wartość , która zawiera informacje symboliczne dla dynamicznie generowanego kodu.Emituje element , który zawiera informacje o symbolu /tmp/perfinfo-<pid>.map moduł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łączone1 - Mapy wydajności i zrzuty jit są włączone2 - Włączone zrzuty jit3 - 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łączone1 -Włączone |
Uwaga
To ustawienie jest ignorowane, jeśli DOTNET_PerfMapEnabled zostanie pominięty lub ustawiony na 0
wartość (czyli wyłączone).