Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
.NET TraceProcessing je k dispozici z NuGetu s následujícím ID balíčku:
Microsoft.Windows.EventTracing.Processing.All
Tento balíček umožňuje přístup k datům v trasovacím souboru. Pokud ještě nemáte trasovací soubor, můžete ho vytvořit pomocí nástroje Windows Performance Recorder .
Následující příklad konzolové aplikace ukazuje, jak získat přístup k příkazovému řádku všech procesů obsažených v trasování:
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);
}
}
}
}
Použití TraceProcessoru
Chcete-li zpracovat trasu, zavolejte TraceProcessor.Create. Základní rozhraní je ITraceProcessor a použití tohoto rozhraní zahrnuje následující vzor:
- Nejprve řekněte zpracovateli, jaká data chcete použít z trasování.
- Za druhé, zpracujte trasování; a
- Nakonec přejděte k výsledkům.
Když procesoru řeknete, jaké druhy dat chcete mít předem, nemusíte ztrácet čas zpracováním velkých objemů všech možných druhů dat trasování. Místo toho TraceProcessor pouze provede práci potřebnou k poskytnutí konkrétních typů dat, která požadujete.
Doporučené nastavení projektu
Pro použití s TraceProcessorem doporučujeme použít několik nastavení projektu:
Doporučujeme spustit exe jako 64bitovou verzi.
Výchozí nastavení ve Visual Studio pro novou konzolovou aplikaci C# .NET Framework je "Any CPU" s preferovaným nastavením 32bitové verze. Výchozí hodnota pro .NET už může obsahovat doporučené nastavení.
Zpracování trasování může být náročné na paměť, zejména u větších trasování, a doporučujeme změnit cíl platformy na x64 (nebo zrušit zaškrtnutí políčka Preferovat 32bitovou verzi) v exe, které používají TraceProcessor. Pokud chcete tato nastavení změnit, podívejte se na kartu Sestavení v části Vlastnosti projektu. Chcete-li změnit tato nastavení pro všechny konfigurace, ujistěte se, že rozevírací seznam Konfigurace je nastavený na Všechny konfigurace, a ne na výchozí hodnotu pouze aktuální konfigurace.
Doporučujeme použít NuGet s novějším režimem PackageReference místo staršího režimu packages.config.
Pokud chcete změnit výchozí nastavení pro nové projekty, přečtěte si téma Nástroje, Správce balíčků NuGet, Nastavení Správce balíčků, Správa balíčků, Výchozí formát správy balíčků.
Předdefinované zdroje dat
Soubor .etl může zachytit mnoho druhů dat v trasování. Upozorňujeme, že data obsažená v souboru .etl závisí na tom, jaký zprostředkovatel byl povolen při zachycení trasování. Následující seznam ukazuje druhy trasovacích dat dostupných z TraceProcessoru:
| Kód | Popis | Související položky WPA |
|---|---|---|
| sledovat.UseClassicEvents() | Poskytuje klasické události ETW z trasování, které neobsahují informace o schématu. | Obecná tabulka Událostí (pokud je typ události Classic nebo WPP) |
| sledování.UseConnectedStandbyData() | Poskytuje data ze sledování o systému vstupujícím do a opouštějícím připojený pohotovostní režim. | Souhrnná tabulka CS |
| trasování.UseCpuIdleStates() | Poskytuje data z trasování o stavech C procesoru. | Tabulka nečinných stavů procesoru (pokud je typ aktuální) |
| trasování.UseCpuSamplingData() | Poskytuje data z trasování využití CPU na základě pravidelného vzorkování instrukčního ukazatele. | Tabulka Využití procesoru (vzorkovaná) |
| stopa. UseCpuSchedulingData() | Poskytuje data z trasovacího záznamu o plánování vláken CPU, včetně přepínání kontextu a událostí vláken připravených k použití. | Tabulka Využití procesoru (přesné) |
| sledování.UseDevicePowerData() | Poskytuje data z trasování o stavech D-zařízení. | Tabulka stavu zařízení |
| stopa. UseDirectXData() | Poskytuje data ze sledování o aktivitě DirectX. | Tabulka využití GPU |
| traceUseDiskIOData() | Poskytuje data z trasování o aktivitě vstupně-výstupních operací disku. | Tabulka Využití disků |
| sled.UseEnergyEstimationData() | Poskytuje data ze sledování o odhadované spotřebě energie pro jednotlivé procesy z Energy Estimation Engine. | Tabulka shrnutí mechanismu odhadu energie (podle procesu) |
| stopa. UseEnergyMeterData() | Poskytuje data ze sledování měřené spotřeby energie z rozhraní EMI (Energy Meter Interface). | Tabulka motoru odhadu energie (by Emi) |
| sledovat.UseFileIOData() | Poskytuje data ze záznamu o vstupně-výstupní aktivitě souboru. | Tabulka vstupně-výstupních operací souborů |
| Trace.UseGenericEvents() | Poskytuje manifestované a TraceLogging události ze sledování. | Obecná tabulka Událostí (pokud je typ události manifestovaný nebo TraceLogging) |
| sledování.UseHandles() | Poskytuje částečná data ze záznamu o aktivních popisovačích jádra. | Úchyty tabulky |
| stopa. UseHardFaults() | Poskytuje data ze sledování o chybách při načítání pevných stránek. | Tabulka závažných chyb |
| trasování.UseHeapSnapshots() | Poskytuje data ze sledování využití haldy procesu. | Tabulka snímků haldy |
| Trace.UseHypercalls() | Poskytuje data o Hyper-V hypervolacích, ke kterým došlo během trasování. | |
| sleduj.UseImageSections() | Poskytuje data z trasování částí obrázku. | Sloupec Název oddílu tabulky Využití procesoru (vzorek) |
| trasování.UseInterruptHandlingData() | Poskytuje data z trasování o aktivitě Interrupt Service Routine (ISR) a Deferred Procedure Call (DPC). | Tabulka DPC/ISR |
| výpis.PoužijZnačky() | Poskytuje značky (označené časová razítka) ze stopy. | Označí tabulku |
| Sledujte.UseMemoryUtilizationData() | Poskytuje data ze sledování o celkovém využití systémové paměti. | Tabulka využití paměti |
| sledování. UseMetadata() | Poskytuje metadata trasování dostupná bez dalšího zpracování. | Konfigurace systému, trasování a obecné |
| stopa. UsePlatformIdleStates() | Poskytuje data ze sledování o cílových a skutečných stavech nečinnosti platformy v systému. | Tabulka stavu nečinnosti platformy |
| stopa. UsePoolAllocations() | Poskytuje data ze sledování využití paměti fondu jádra. | Souhrnná tabulka bazénu |
| sledovat.UsePowerConfigurationData() | Poskytuje data ze sledování konfigurace napájení systému. | Konfigurace systému, nastavení napájení |
| trasování.UsePowerDependencyCoordinatorData() | Poskytuje data z trasování o fázích koordinátoru aktivní závislosti výkonu. | Tabulka souhrnu fáze oznámení |
| sledovat.PoužítProcesy() | Poskytuje data o procesech aktivních během trasování a o jejich obrazových souborech a souborech PDB. | Tabulka procesů; Tabulka obrázků; Centrum symbolů |
| trasování.UseProcessorCounters() | Poskytuje data ze sledování hodnot čítače výkonu procesoru pomocí nástroje Processor Counter Monitor (PCM). | |
| Trace.UseProcessorFrequencyData() | Poskytuje data z trasování o tom, jak často procesory běžely. | Tabulka Frekvence procesoru (pokud je typ skutečný) |
| sledování.UseProcessorProfileData() | Poskytuje data z trasování aktivního profilu výkonu procesoru. | Tabulka Profilů procesoru |
| stopa. UseProcessorParkingData() | Poskytuje data ze záznamu o tom, které procesory byly zaparkovány nebo odparkovány. | Tabulka Stavu parkování procesoru |
| trasování.UseProcessorParkingLimits() | Poskytuje data ze záznamu o maximálním povoleném počtu neparkovaných procesorů. | Tabulka stavu omezení parkování jader |
| sledování.PoužítDataKvalitySlužbyProcesoru() | Poskytuje data z trasování o kvalitě úrovně služeb pro každý procesor. | Tabulka třídy Qos procesoru |
| Sledování.UseProcessorThrottlingData() | Poskytuje data ze sledování o škrcení maximální frekvence procesoru. | Tabulka omezení procesoru |
| stopa. UseReadyBootData() | Poskytuje data z trasování o aktivitách předběžného načítání při spuštění z Ready Boot. | Tabulka událostí Ready Boot |
| stopa. UseReferenceSetData() | Poskytuje data z trasování stránek virtuální paměti používané každým procesem. | Tabulka referenčních sad |
| sleduj.UseRegionsOfInterest() | Poskytuje pojmenované oblasti intervalů zájmu z trasování, jak je uvedeno v konfiguračním souboru XML. | Tabulka Oblastí zájmu |
| trasování.UseRegistryData() | Poskytuje data o činnosti registru během sledování. | Tabulka registru |
| stopa. UseResidentSetData() | Poskytuje data z trasování o stránkách virtuální paměti pro jednotlivé procesy, které byly rezidentní ve fyzické paměti. | Tabulka Rezidentní sada |
| trasování.UseRundownData() | Poskytuje data z trasování o intervalech, během kterých probíhalo shromažďování dat z odstavení trasování. | Stínované oblasti na časové ose grafu |
| stopa. UseScheduledTasks() | Poskytuje data o určených úlohách, které se spustily během sledování. | Tabulka Naplánované úkoly |
| sledování.UseServices() | Poskytuje data o službách, které byly aktivní nebo měly svůj stav zaznamenaný během sledování. | Tabulka služeb; Konfigurace systému, služby |
| sledování.UseStacks() | Poskytuje data o zásobníkech zaznamenaných během trasování. | |
| sledování.UseStackEvents() | Poskytuje data o událostech spojených se zásobníky zaznamenanými během trasování. | Tabulka zásobníků |
| sledování.UseStackTags() | Poskytuje mapovač, který seskupuje zásobníky z trasování do značek zásobníku, jak je uvedeno v konfiguračním souboru XML. | Sloupce, jako je značka zásobníku a zásobník (značky rámců) |
| sledování.UseSymbols() | Poskytuje možnost načíst symboly pro trasování. | Konfigurace cest symbolů; Načtení symbolů |
| stopa. UseSyscalls() | Poskytuje data o systémových voláních, která se vyskytla během trasování. | Tabulka Syscalls |
| trasování.UseSystemMetadata() | Poskytuje obecná metadata pro celý systém z trasování. | Konfigurace systému |
| sledování.UseSystemPowerSourceData() | Poskytuje data ze sledování o aktivním zdroji energie systému (střídavý proud vs. stejnosměrný proud). | Systémová tabulka zdroje napájení |
| trasovat.UseSystemSleepData() | Poskytuje data z trasování o celkovém stavu napájení systému. | Tabulka přechodu moci |
| PoužijCílovéStavyNečinnostiCentrálníhoProcesoru() | Poskytuje data ze záznamu o C-stavech cílového procesoru. | Tabulka stavy nečinnosti procesoru (pokud je typ target) |
| trace. UseTargetProcessorFrequencyData() | Poskytuje data ze sledování o frekvencích cílových procesorů. | Tabulka Frekvence procesoru (pokud je typ target) |
| stopa. UseThreads() | Poskytuje data o aktivních vláknech během trasování. | Tabulka Životnosti vláken |
| stopa. UseTraceStatistics() | Poskytuje statistiky o událostech v trasování. | Konfigurace systému, statistika trasování |
| trasování.UseUtcData() | Poskytuje data ze sledování aktivity telemetrie Microsoftu pomocí univerzálního klienta telemetrie (UTC). | Tabulka UTC |
| trasovat.UseWindowInFocus() | Poskytuje data ze sledování o změnách aktivního okna uživatelského rozhraní v centru pozornosti. | Okno v tabulce Focus |
| stopa. UseWindowsTracePreprocessorEvents() | Poskytuje události preprocesoru softwarového trasování systému Windows (WPP) z trasování. | Tabulka trasování WPP; Obecná tabulka Událostí (pokud je typ události WPP) |
| stopa. UseWinINetData() | Poskytuje data ze sledování internetové aktivity prostřednictvím Windows Internet (WinINet). | Stáhnout tabulku Podrobností |
| stopa. UseWorkingSetData() | Poskytuje data ze sledování stránek virtuální paměti, které byly součástí pracovní sady pro jednotlivé procesy nebo kategorie jádra. | Tabulka snímků virtuální paměti |
Viz také rozšiřující metody na ITraceSource pro všechna dostupná trasovací data, nebo prozkoumejte metodu dostupnou z "trasování", kterou ukazuje IntelliSense.
Další kroky
V tomto přehledu jste zjistili, jak získat přístup k datům trasování pomocí TraceProcessoru a integrovaných zdrojů dat, ke kterým má přístup.
V dalším kroku se dozvíte, jak rozšířit TraceProcessor pro přístup k vlastním trasovacím datům.
Windows developer