Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A .NET TraceProcessing NuGet a következő csomagazonosítóval érhető el:
Microsoft.Windows.EventTracing.Processing.All
Ez a csomag lehetővé teszi a nyomkövetési fájlban lévő adatok elérését. Ha még nem rendelkezik nyomkövetési fájllal, Windows Teljesítményrögzítő használatával hozhat létre egyet.
Az alábbi példakonzolalkalmazás bemutatja, hogyan érheti el a nyomkövetésben található összes folyamat parancssorát:
using Microsoft.Windows.EventTracing;
using Microsoft.Windows.EventTracing.Processes;
using System;
class Program
{
static void Main(string[] args)
{
if (args.Length != 1)
{
Console.Error.WriteLine("Usage: <trace.etl>");
return;
}
using (ITraceProcessor trace = TraceProcessor.Create(args[0]))
{
IPendingResult<IProcessDataSource> pendingProcessData = trace.UseProcesses();
trace.Process();
IProcessDataSource processData = pendingProcessData.Result;
foreach (IProcess process in processData.Processes)
{
Console.WriteLine(process.CommandLine);
}
}
}
}
A TraceProcessor használata
Nyomkövetés feldolgozásához hívja meg a TraceProcessor.Create parancsot. Az alapvető interfész az ITraceProcessor, és ennek az interfésznek a használata a következő mintát foglalja magában:
- Először mondja el a feldolgozónak, hogy milyen adatokat szeretne használni egy nyomkövetésből
- Másodszor, dolgozza fel a nyomkövetést; és
- Végül hozzáférés az eredményekhez.
Ha előre meg szeretné mondani a feldolgozónak, hogy milyen típusú adatokat szeretne, az azt jelenti, hogy nem kell sok időt töltenie az összes lehetséges nyomkövetési adat nagy mennyiségének feldolgozásával. Ehelyett a TraceProcessor csak azokat a feladatokat végzi el, amelyek a kért adattípusok megadásához szükségesek.
Javasolt projektbeállítások
A TraceProcessor használata több projektbeállítást is javasol:
Azt javasoljuk, hogy az exe-ket 64 bitesként futtassa.
Az új C# .NET-keretrendszer konzolalkalmazáshoz a Visual Studio alapértelmezett beállítása a "Bármely processzor", amelynél a "Preferálja a 32 bitet" ki van jelölve. Előfordulhat, hogy a .NET alapértelmezett beállítása már rendelkezik az ajánlott beállítással.
A nyomkövetési feldolgozás memóriaigényes lehet, különösen nagyobb nyomkövetések esetén, és javasoljuk, hogy módosítsa a platformcélt x64-re (vagy törölje a 32 bites előnyben részesítés jelölését) a TraceProcessort használó exe-kben. A beállítások módosításához tekintse meg a projekt Tulajdonságok csoportjában található Build lapot. Ha módosítani szeretné ezeket a beállításokat az összes konfigurációhoz, győződjön meg arról, hogy a Konfiguráció legördülő lista az összes konfigurációra van állítva, nem pedig csak az aktuális konfiguráció alapértelmezett beállítására.
Javasoljuk, hogy a NuGetet a régebbi packages.config mód helyett az újabb stílusú PackageReference móddal használja.
Az új projektek alapértelmezett értékének módosításáról az Eszközök, a NuGet Package Manager, a Csomagkezelő beállításai, a Csomagkezelés és az Alapértelmezett csomagkezelési formátum című témakörben olvashat.
Beépített adatforrások
Az .etl-fájlok sokféle adatot rögzíthetnek egy nyomkövetésben. Vegye figyelembe, hogy az .etl-fájlban lévő adatok attól függenek, hogy a nyomkövetés rögzítésekor mely szolgáltatók voltak engedélyezve. Az alábbi lista a TraceProcessorból elérhető nyomkövetési adatokat mutatja be:
| Kód | Leírás | Kapcsolódó WPA-elemek |
|---|---|---|
| nyomkövetés.UseClassicEvents() | Klasszikus ETW-eseményeket biztosít egy nyomkövetésből, amelyek nem tartalmaznak sémainformációkat. | Általános események tábla (ha az eseménytípus klasszikus vagy WPP) |
| nyom. UseConnectedStandbyData() | Adatokat biztosít a csatlakoztatott készenléti állapotba lépő és onnan kilépő rendszer nyomkövetési adataiból. | CS összefoglaló táblázat |
| követés. HasználdACpuTétlenÁllapotokat() | Adatokat szolgáltat egy nyomkövetésből a processzor C-állapotokkal kapcsolatban. | Cpu tétlen állapotok táblázata (ha a típus tényleges) |
| nyomvonal.UseCpuSamplingData() | Adatokat biztosít a processzorhasználat nyomkövetéséből az utasításmutató rendszeres mintavételezése alapján. | CPU-használat (mintául szolgáló) tábla |
| nyom.UseCpuSchedulingData() | Adatokat biztosít a cpu-szál ütemezéséről, beleértve a környezeti kapcsolókat és a kész száleseményeket. | CPU-használat (pontos) táblázat |
| követés. UseDevicePowerData() | Adatokat biztosít az eszköz D-állapotainak nyomkövetéséből. | Eszköz DState táblája |
| nyom. UseDirectXData() | A DirectX-tevékenység nyomon követéséből biztosít adatokat. | GPU-kihasználtsági táblázat |
| traceUseDiskIOData() | Adatokat biztosít a lemez I/O-tevékenységének nyomkövetéséből. | Lemezhasználati táblázat |
| nyomkövetés.UseEnergyEstimationData() | Az energiabecslési motorból származó becsült folyamatonkénti energiahasználatra vonatkozó nyomkövetési adatokból nyújt adatokat. | Energiabecslési rendszer összefoglaló táblázat (folyamat szerint) |
| energiaMérőAdatátHasznál() | Adatokat szolgáltat a mért energiahasználat nyomon követéséről az Energy Meter Interface (EMI) segítségével. | Energiabecslési motor (Emi szerint) táblázat |
| nyomkövetés.UseFileIOData() | A fájl I/O-tevékenységének nyomkövetéséből biztosít adatokat. | Fájl I/O táblázat |
| nyom. UseGenericEvents() | Egy nyomkövetésből származó jegyzékbeli és TraceLogging-eseményeket biztosít. | Általános események táblázat (amikor az esemény típusa 'Megnyilvánult' vagy 'TraceLogging') |
| nyom. HasználjaKezeleket() | Részleges adatokat biztosít az aktív kernelfogantyúk nyomkövetéséből. | A tábla fogópontjai |
| nyom. AHardFaults() használata | Adatokat biztosít a kemény oldalhibákkal kapcsolatos nyomkövetésből. | Hard Faults táblázat |
| nyomkövetés.UseHeapSnapshots() | Adatokat biztosít a folyamat halomhasználatáról szóló nyomkövetésből. | Heap pillanatkép táblázata |
| trace.UseHypercalls() használata | Adatokat biztosít Hyper-V nyomkövetés során történt hiperhívásokról. | |
| nyom.KépRészletekHasználata() | A rendszerkép szakaszainak nyomkövetéséből biztosít adatokat. | A CPU-használat (mintavételezett) táblázat Szakasz név oszlopa |
| követés.UseInterruptHandlingData() | Adatokat biztosít a megszakítási szolgáltatási rutin (ISR) és a késleltetett eljáráshívás (DPC) tevékenységéről. | DPC/ISR tábla |
| nyom.HasználjJelölőket() | A nyomkövetésből származó jeleket (címkézett időbélyegeket) adja meg. | Jelzések táblázata |
| nyom. UseMemoryUtilizationData() | A teljes rendszermemória-kihasználtság nyomkövetéséből biztosít adatokat. | Memóriakihasználtsági táblázat |
| nyom.HasználjaMetadatot() | További feldolgozás nélkül elérhető nyomkövetési metaadatokat biztosít. | Rendszerkonfiguráció, nyomkövetések és általános |
| nyomkövetés.HasználjaPlatformIdleStates() | Adatokat nyújt egy nyomkövetésből a rendszer cél- és tényleges platform tétlen állapotáról. | Platform inaktív állapot táblája |
| követés.HasználjonMemóriaAllokációkat() | Adatokat biztosít a kernelkészlet memóriahasználatáról szóló nyomkövetésből. | Készletösszegző tábla |
| UsePowerConfigurationData() nyomkövetése | Adatokat biztosít a rendszer energiakonfigurációjának nyomkövetéséből. | Rendszerkonfiguráció, Energiabeállítások |
| követés.UsePowerDependencyCoordinatorData() | Adatokat biztosít az aktív teljesítményfüggőség-koordinátor fázisairól. | Értesítési fázis összegzési táblázata |
| nyom.UseProcesses() | Adatokat biztosít a nyomkövetés során aktív folyamatokról, valamint azok rendszerképeiről és PDF-eiről. | Folyamattábla; Képek táblázat; Symbols Hub |
| nyom. UseProcessorCounters() | Adatokat biztosít a processzorteljesítmény-számláló értékeivel kapcsolatos nyomkövetésből a Processzorszámláló monitorból (PCM). | |
| UseProcessorFrequencyData() | A processzorok futási gyakoriságának nyomon követéséből biztosít adatokat. | Processzorfrekvencia-táblázat (ha a típus tényleges) |
| nyom. UseProcessorProfileData() | Adatokat biztosít az aktív processzor teljesítményprofiljának nyomkövetéséből. | Processzorprofil-tábla |
| nyomonkövetés.HasználjaAProcesszorParkolásiAdatokat() | Adatokat biztosít egy nyomkövetésből, amelyből megtudhatja, hogy mely processzorok parkoltak le vagy nem parkoltak le. | Processzor parkolási állapota tábla |
| nyomkövetés.HasználjaProcesszorfoglalásiKorlátokat() | A nemparkolt processzorok maximális megengedett számának nyomkövetéséből biztosít adatokat. | Mag processzor lekapcsolási állapot tábla |
| nyomon.KezeljeProcesszorMinőségiSzolgáltatásiAdatokat() | Az egyes processzorok szolgáltatási szintjének minőségével kapcsolatos nyomkövetési adatok. | Processzor Qos osztálytáblája |
| nyomkövetés.UseProcessorThrottlingData() | Adatokat biztosít a processzor maximális gyakoriságának szabályozásáról szóló nyomkövetésből. | Processzorkorlátok tábla |
| nyomkövetés.UseReadyBootData() | Adatokat biztosít a Ready Boot rendszerindítás előtti tevékenységével kapcsolatos nyomkövetésből. | Ready Boot eseménytábla |
| nyomkövet.UseReferenceSetData() | Az egyes folyamatok által használt virtuális memória lapjainak nyomkövetéséből biztosít adatokat. | Referenciatáblázat |
| nyomkövetés.HasználjaAzÉrdeklődésiTerületeket() | Egy xml-konfigurációs fájlban megadott nyomkövetési intervallumok nevesített régióit tartalmazza. | Az Érdeklődési Területek táblázata |
| követés.UseRegistryData() | Adatokat szolgáltat a beállításjegyzék-tevékenységről a nyomkövetés során. | Nyilvántartási tábla |
| nyomon_kovet.UseResidentSetData() | Adatokat biztosít a virtuális memória lapjainak nyomkövetéséből minden olyan folyamathoz, amely a fizikai memóriában található. | Rezidens készlet tábla |
| nyom. UseRundownData() | Olyan időközökről biztosít adatokat, amelyek során lefutott nyomkövetési adatgyűjtés történt. | Árnyékolt régiók a gráf ütemtervében |
| trace.UseScheduledTasks() használata | Adatokat biztosít a nyomkövetés során futtatott ütemezett tevékenységekről. | Ütemezett feladatok tábla |
| nyom. UseServices() | Adatokat szolgáltat azokról a szolgáltatásokról, amelyek aktívak voltak, vagy amelyek állapotát rögzítették egy nyomkövetés során. | Szolgáltatástábla; Rendszerkonfiguráció, szolgáltatások |
| követés.UseStacks() | A nyomkövetés során rögzített veremekről nyújt adatokat. | |
| nyom. UseStackEvents() | Információt nyújt a nyomkövetési folyam során rögzített veremekhez kapcsolódó eseményekről. | Verem táblázat |
| nyom. UseStackTags() | Egy olyan leképezőt biztosít, amely a nyomkövetés veremeit csoportosítja veremcímkékké egy XML-konfigurációs fájlban megadottak szerint. | Oszlopok, például veremcímke és verem (keretcímkék) |
| kód.KövesseASzimbólumokat() | Lehetővé teszi a nyomkövetés szimbólumainak betöltését. | Szimbólumútvonalak konfigurálása; Szimbólumok betöltése |
| nyomkövetés.UseSyscalls() | Adatokat biztosít a nyomkövetés során történt syscall-okról. | Rendszerhívások táblázata |
| nyom.KezeliARendszerMetadadatait() | Általános, rendszerszintű metaadatokat biztosít egy nyomkövetésből. | Rendszerkonfiguráció |
| nyomkövetés.UseSystemPowerSourceData() | Adatokat biztosít az aktív rendszer energiaforrásának nyomkövetéséből (AC és DC). | Rendszer energiaforrás táblázat |
| Nyomkövetés.HasználdRendszerAlvásAdat() | A rendszer teljes energiaállapotának nyomon követéséből biztosít adatokat. | Teljesítményátmeneti tábla |
| nyomkövetés.HasználdACélCpuTétlenÁllapotait() | Adatokat biztosít a cél CPU C-állapotairól szóló nyomkövetésből. | Cpu tétlen állapotok táblázata (ha a típus cél) |
| nyomkövetés.UseTargetProcessorFrequencyData() | Adatokat biztosít a célprocesszor-frekvenciák nyomkövetéséből. | Processzorfrekvencia-táblázat (ha a típus cél) |
| nyomkövetés.HasználjSzálakat() | Adatokat biztosít a nyomkövetés során aktív szálakról. | Élettartamok táblázata szálakhoz |
| nyomkövetés.HasználjaANyomkövetésiStatisztikákat() | Statisztikát nyújt a nyomkövetésben lévő eseményekről. | Rendszerkonfiguráció, nyomkövetési statisztikák |
| nyom. UseUtcData() | Adatokat biztosít a Microsoft telemetriai tevékenységéről a Universal Telemetry Client (UTC) használatával. | Időzóna tábla |
| nyomkövetés.UseWindowInFocus() | Adatokat biztosít a fókuszban lévő aktív felhasználói felület ablakának változásairól szóló nyomkövetésből. | A Fókusz táblában lévő ablak |
| nyom.HasználjaAWindowsNyomElőfeldolgozóEseményeket() | Windows szoftverkövetési előfeldolgozás (WPP) eseményeket biztosít egy nyomkövetés során. | WPP Trace tábla; Általános események tábla (ha az esemény típusa WPP) |
| nyom. UseWinINetData() | A Windows Interneten (WinINet) keresztül végzett internetes tevékenység nyomon követéséből biztosít adatokat. | "Részletek táblázat letöltése" |
| Trace.UseWorkingSetData() | Az egyes folyamatok vagy kernelkategóriák munkakészletében lévő virtuális memória lapjainak nyomkövetéséből biztosít adatokat. | A virtuális memória pillanatképeinek táblája |
Tekintse meg az ITraceSource bővítménymetódusait is az összes elérhető nyomkövetési adathoz, vagy vizsgálja meg az IntelliSense által bemutatott "nyomkövetési" metódust.
Következő lépések
Ebben az áttekintésben megtanulta, hogyan férhet hozzá nyomkövetési adatokhoz a TraceProcessor és az általa elérhető beépített adatforrások használatával.
A következő lépésben megtudhatja, hogyan bővítheti a TraceProcessort az egyéni nyomkövetési adatok eléréséhez.
Windows developer