Sdílet prostřednictvím


Možnosti konfigurace modulu runtime pro ladění a profilaci

Tento článek podrobně popisuje nastavení, která můžete použít ke konfiguraci ladění a profilace .NET.

Poznámka:

Počínaje rozhraním .NET 11 podporují proměnné prostředí profileru obě DOTNET i CORECLR předpony. Předpona DOTNET je nový standard, CORECLR udržuje se kvůli zpětné kompatibilitě a může být odebrána v budoucnu.

Povolení diagnostiky

  • Konfiguruje, jestli je ladicí program, profiler a diagnostika EventPipe povolené nebo zakázané.
  • Pokud toto nastavení vynecháte, diagnostika se povolí. To je ekvivalentní nastavení hodnoty na 1.
Název položky nastavení Hodnoty
runtimeconfig.json N/A N/A
Proměnná prostředí DOTNET_EnableDiagnostics 1 -zpřístupněný
0 -invalidní

Povolení profilace

  • Konfiguruje, jestli je pro aktuálně spuštěný proces povolená profilace.
  • Pokud toto nastavení vynecháte, profilace je zakázaná. To je ekvivalentní nastavení hodnoty na 0.
  • Pokud chcete načíst profiler, kromě povolení profilace je potřeba pomocí těchto nastavení nakonfigurovat také guid profileru a umístění profileru profileru.
Název položky nastavení Hodnoty
runtimeconfig.json N/A N/A
Proměnná prostředí DOTNET_ENABLE_PROFILING 0 -invalidní
1 -zpřístupněný

GUID profileru

  • Určuje identifikátor GUID profileru, který se má načíst do aktuálně spuštěného procesu.
Název položky nastavení Hodnoty
runtimeconfig.json N/A N/A
Proměnná prostředí CORECLR_PROFILER nebo DOTNET_PROFILER string-guid

Umístění profileru

Po povolení profilace je možné profiler načíst dvěma způsoby: pomocí proměnných prostředí (křížové platy) nebo prostřednictvím registru (jenom Windows). Proměnné prostředí cesty profileru mají přednost před libovolnou cestou knihovny COM v registru, pokud jsou zadány obě.

Proměnná prostředí (křížový plat)

  • Určuje cestu k knihovně DLL profileru, která se má načíst do aktuálně spuštěného procesu (nebo do 32bitového nebo 64bitového procesu).
  • Pokud je nastavena více než jedna proměnná, mají přednost proměnné specifické pro bitovou hodnotu. Určují, jaká bitová verze profileru se má načíst.
Název položky nastavení Hodnoty
Proměnná prostředí CORECLR_PROFILER_PATH nebo DOTNET_PROFILER_PATH cesta k řetězci
Proměnná prostředí CORECLR_PROFILER_PATH_32 nebo DOTNET_PROFILER_PATH_32 cesta k řetězci
Proměnná prostředí CORECLR_PROFILER_PATH_64 nebo DOTNET_PROFILER_PATH_64 cesta k řetězci
Proměnná prostředí CORECLR_PROFILER_PATH_ARM32 nebo DOTNET_PROFILER_PATH_ARM32 cesta k řetězci
Proměnná prostředí CORECLR_PROFILER_PATH_ARM64 nebo DOTNET_PROFILER_PATH_ARM64 cesta k řetězci

Prostřednictvím registru (jenom Windows)

DOTNET_PROFILER_PATH* Pokud se proměnné prostředí nenastaví při spuštění ve Windows, coreclr vyhledá CLSID z DOTNET_PROFILER registru a vyhledá úplnou cestu ke knihovně DLL profileru. Stejně jako u jakékoli knihovny DLL serveru COM se ID CLSID profileru hledá pod HKEY_CLASSES_ROOT, která slučuje třídy Z HKLM a HKCU.

Export map výkonu a výpisů paměti jit

  • Povolí nebo zakáže mapy výkonu nebo výpisy stavu jit. Tyto soubory umožňují nástrojům třetích stran, jako perf je například linuxový nástroj, poskytovat pro dynamicky generované kódy a předem kompilované moduly ReadyToRun (R2R) čitelné pro člověka.
  • Pokud toto nastavení vynecháte, zápis map výkonu a soubory výpisu paměti jit jsou zakázány. To je ekvivalentní nastavení hodnoty na 0.
  • Pokud jsou mapy výkonu zakázané, nebudou se správně řešit všechny spravované weby volání.
  • Nástroj podporuje oba formáty v závislosti na verzi jádra Linuxu perf .
  • Povolení map výkonu nebo výpisů paměti jit může způsobit až 20% režijních nákladů, ale často je mnohem méně. Pokud chcete minimalizovat dopad na výkon, doporučujeme selektivně povolit mapy výkonu nebo výpisy paměti jit, ale ne obojí. K dopadu dochází pouze v případě, že aplikace provádí kód JITing. Často k tomu dochází při spuštění, ale může k němu dojít později, pokud aplikace spouští novou cestu kódu poprvé.

Následující tabulka porovnává mapy výkonu a mapy jit.

Formát Description Podporováno na
Mapy výkonu /tmp/perf-<pid>.mapGeneruje , který obsahuje symbolické informace pro dynamicky vygenerovaný kód.
Generuje informace o symbolu /tmp/perfinfo-<pid>.mapmodulu ReadyToRun (R2R) a používá ho PerfCollect.
Mapy výkonu se podporují ve všech verzích jádra Linuxu.
Výpisy paměti jit Formát výpisu paměti jit nahrazuje mapy výkonu a obsahuje podrobnější symbolické informace. Pokud je tato možnost povolená, výstupem výpisů paměti jit jsou /tmp/jit-<pid>.dump soubory. Linuxové jádro verze 5.4 nebo vyšší.
Název položky nastavení Hodnoty
runtimeconfig.json N/A N/A
Proměnná prostředí DOTNET_PerfMapEnabled 0 -invalidní
1 – mapy výkonu a výpisy paměti jit obě povoleny
2 – povolení výpisů paměti jit
3 - povolené mapy výkonu

Značky protokolu výkonu

  • Povolí nebo zakáže, aby byl zadaný signál přijat a ignorován jako značka v protokolech výkonu.
  • Pokud toto nastavení vynecháte, zadaný signál nebude ignorován. To je ekvivalentní nastavení hodnoty na 0.
Název položky nastavení Hodnoty
runtimeconfig.json N/A N/A
Proměnná prostředí DOTNET_PerfMapIgnoreSignal 0 -invalidní
1 -zpřístupněný

Poznámka:

Toto nastavení se ignoruje, pokud DOTNET_PerfMapEnabled vynecháte nebo nastavíte ( 0 to znamená zakázáno).