Megosztás:


Futásidejű konfigurációs beállítások hibakereséshez és profilkészítéshez

Ez a cikk a .NET-hibakeresés és -profilkészítés konfigurálásához használható beállításokat ismerteti.

Megjegyzés:

A .NET 11-től kezdődően a profiler környezeti változói mind az DOTNET előtagokat, mind CORECLR az előtagokat támogatják. Az DOTNET előtag az új szabvány; CORECLR a visszamenőleges kompatibilitás érdekében megmarad, és a jövőben el is távolítható.

Diagnosztika engedélyezése

  • Konfigurálja, hogy a hibakereső, a profilkészítő és az EventPipe diagnosztika engedélyezve van-e vagy le van-e tiltva.
  • Ha kihagyja ezt a beállítást, a diagnosztika engedélyezve van. Ez egyenértékű az érték 1beállításával.
Név beállítása Értékek
runtimeconfig.json N/A N/A
Környezeti változó DOTNET_EnableDiagnostics 1 -Engedélyezve
0 -fogyatékos

Profilkészítés engedélyezése

  • Konfigurálja, hogy a profilkészítés engedélyezve van-e az aktuálisan futó folyamathoz.
  • Ha kihagyja ezt a beállítást, a profilkészítés le van tiltva. Ez egyenértékű az érték 0beállításával.
  • A profilozó betöltéséhez a profilkészítés engedélyezése mellett a profiler GUID-azonosítójának és a profiler helyének is konfigurálnia kell ezeket a beállításokat.
Név beállítása Értékek
runtimeconfig.json N/A N/A
Környezeti változó DOTNET_ENABLE_PROFILING 0 -fogyatékos
1 -Engedélyezve

Profiler GUID

  • Megadja a profilkészítőnek az aktuálisan futó folyamatba betöltendő GUID-azonosítóját.
Név beállítása Értékek
runtimeconfig.json N/A N/A
Környezeti változó CORECLR_PROFILER vagy DOTNET_PROFILER sztring-guid

Profilkészítő helye

A profilkészítés engedélyezése után a profilkészítő kétféleképpen tölthető be: környezeti változókkal (kereszt-plat) vagy a beállításjegyzéken keresztül (csak Windows rendszeren). Ha mindkettő meg van adva, a profilozó elérési útja környezeti változói elsőbbséget élveznek a beállításjegyzék bármely COM-kódtár-elérési útjára.

Környezeti változó (kereszt-plat)

  • Megadja a profilkészítő DLL elérési útját a jelenleg futó folyamatba (vagy 32 bites vagy 64 bites folyamatba) való betöltéséhez.
  • Ha egynél több változó van beállítva, a bitness-specifikus változók elsőbbséget élveznek. Megadják a profilkészítő betöltendő bitképességét.
Név beállítása Értékek
Környezeti változó CORECLR_PROFILER_PATH vagy DOTNET_PROFILER_PATH sztring-elérési út
Környezeti változó CORECLR_PROFILER_PATH_32 vagy DOTNET_PROFILER_PATH_32 sztring-elérési út
Környezeti változó CORECLR_PROFILER_PATH_64 vagy DOTNET_PROFILER_PATH_64 sztring-elérési út
Környezeti változó CORECLR_PROFILER_PATH_ARM32 vagy DOTNET_PROFILER_PATH_ARM32 sztring-elérési út
Környezeti változó CORECLR_PROFILER_PATH_ARM64 vagy DOTNET_PROFILER_PATH_ARM64 sztring-elérési út

A beállításjegyzéken keresztül (csak Windows rendszeren)

Ha a DOTNET_PROFILER_PATH*környezeti változók nincsenek beállítva a Windows rendszeren való futtatás során, a coreclr megkeresi a CLSID-t a beállításjegyzékből DOTNET_PROFILER , és megkeresi a profilkészítő DLL-jének teljes elérési útját. A COM-kiszolgáló DLL-jeihez hasonlóan a profilkészítő CLSID-je is HKEY_CLASSES_ROOT alatt található, amely egyesíti a HKLM és a HKCU osztályait.

Perf térképek és jit-memóriaképek exportálása

  • Engedélyezi vagy letiltja a perf térképeket vagy jit-memóriaképeket. Ezek a fájlok lehetővé teszik a külső eszközök, például a Linux perf eszköz számára, hogy emberileg olvasható neveket adjanak a dinamikusan létrehozott kódhoz és az előre összeállított ReadyToRun (R2R) modulokhoz.
  • Ha kihagyja ezt a beállítást, a perf map és a jit dump fájlok írása is le van tiltva. Ez egyenértékű az érték 0beállításával.
  • Ha a perf térképek le vannak tiltva, nem minden felügyelt hívási webhely lesz megfelelően feloldva.
  • A Linux kernel verziójától függően az eszköz mindkét formátumot támogatja perf .
  • A perf térképek vagy jit memóriaképek engedélyezése akár 20% többletterhelést is okozhat, bár gyakran sokkal kevesebb. A teljesítményre gyakorolt hatás minimalizálása érdekében ajánlott szelektíven engedélyezni a perf térképeket vagy a jit-memóriaképeket, de mindkettőt nem. A hatás csak akkor jelentkezik, ha az alkalmazás JITing-kód. Ez gyakran az indításkor fordul elő, de később előfordulhat, ha az alkalmazás először futtat egy új kódútvonalat.

Az alábbi táblázat a perf térképeket és a jit-térképeket hasonlítja össze.

Formátum Description Támogatott:
Perf térképek Kibocsát, /tmp/perf-<pid>.mapamely szimbolikus információkat tartalmaz a dinamikusan létrehozott kódhoz.
Bocsát ki /tmp/perfinfo-<pid>.map, amely tartalmazza a ReadyToRun (R2R) modul szimbólumadatait, és amelyet a PerfCollect használ.
A perf térképek minden Linux kernelverzióban támogatottak.
Jit-memóriaképek A jit memóriakép formátuma felülírja a perf térképeket, és részletesebb szimbolikus információkat tartalmaz. Ha engedélyezve van, a jit memóriaképek fájlokat eredményeznek /tmp/jit-<pid>.dump . Linux kernel 5.4-ös vagy újabb verziói.
Név beállítása Értékek
runtimeconfig.json N/A N/A
Környezeti változó DOTNET_PerfMapEnabled 0 -fogyatékos
1 - a perf térképek és a jit memóriaképek engedélyezve
2 - jit memóriaképek engedélyezve
3 - a perf térképek engedélyezve

Perf naplójelölők

  • Engedélyezi vagy letiltja a megadott jel elfogadását és figyelmen kívül hagyását a perf naplók jelölőjeként.
  • Ha kihagyja ezt a beállítást, a rendszer nem hagyja figyelmen kívül a megadott jelet. Ez egyenértékű az érték 0beállításával.
Név beállítása Értékek
runtimeconfig.json N/A N/A
Környezeti változó DOTNET_PerfMapIgnoreSignal 0 -fogyatékos
1 -Engedélyezve

Megjegyzés:

Ez a beállítás figyelmen kívül lesz hagyva , ha a DOTNET_PerfMapEnabled nincs megadva vagy be van állítva 0 (azaz le van tiltva).