Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET TraceProcessing, NuGet ile aşağıdaki paket kimliğiyle kullanılabilir:
Microsoft.Windows.EventTracing.Processing.All
Bu paket, izleme dosyasındaki verilere erişmenizi sağlar. Henüz bir izleme dosyanız yoksa, bir tane oluşturmak için Windows Performans Kaydedicisi'ni kullanabilirsiniz.
Aşağıdaki örnek konsol uygulaması, izlemede yer alan tüm işlemlerin komut satırlarına nasıl erişilir gösterilmektedir:
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);
}
}
}
}
TraceProcessor kullanma
İzlemeyi işlemek için TraceProcessor.Create çağrılmalıdır. Temel arabirim ITraceProcessor'dır ve bu arabirimin kullanılması aşağıdaki deseni içerir:
- İlk olarak, işlemciye bir izlemeden hangi verileri kullanmak istediğinizi söyleyin
- İkincisi, izi işleyin;
- Son olarak sonuçlara erişin.
İşlemciye ne tür verilerin ön sırada olmasını istediğinizi söylemek, olası her tür izleme verisinin büyük hacimlerini işlemek için zaman harcamanız gerekmediği anlamına gelir. Bunun yerine , TraceProcessor yalnızca istediğiniz belirli veri türlerini sağlamak için gereken işi yapar.
Önerilen proje ayarları
TraceProcessor ile kullanmanızı önerdiğimiz birkaç proje ayarı vardır:
Exe'leri 64 bit olarak çalıştırmanızı öneririz.
Yeni bir C# .NET Framework konsol uygulaması için Visual Studio varsayılanı, 'Any CPU' (Tercih edilen 32 bit işaretli) olarak ayarlanmıştır. .NET için varsayılan ayar önerilen ayara zaten sahip olabilir.
İzleme işleme özellikle daha büyük izlemelerle yoğun bellek kullanabilir ve TraceProcessor kullanan exe'lerde Platform hedefini x64 olarak değiştirmenizi (veya 32 bit tercih etme seçeneğinin işaretini kaldırmanızı) öneririz. Bu ayarları değiştirmek için projenin Özellikleri'nin altındaki Derleme sekmesine bakın. Tüm yapılandırmalarda bu ayarları değiştirmek için Yapılandırma açılan listesinin yalnızca geçerli yapılandırmanın varsayılanı yerine Tüm Yapılandırmalar olarak ayarlandığından emin olun.
NuGet'i eski packages.config modu yerine daha yeni stildeki PackageReference moduyla kullanmanızı öneririz.
Yeni projelerin varsayılanını değiştirmek için bkz. Araçlar, NuGet Paket Yöneticisi, Paket Yöneticisi Ayarları, Paket Yönetimi, Varsayılan paket yönetimi biçimi.
Yerleşik veri kaynakları
Bir .etl dosyası bir izlemede birçok veri türünü yakalayabilir. Bir .etl dosyasındaki verilerin izleme yakalanırken hangi sağlayıcıların etkinleştirildiğine bağlı olduğunu unutmayın. Aşağıdaki listede TraceProcessor tarafından sağlanan izleme verilerinin türleri gösterilmektedir:
| Kod | Açıklama | İlgili WPA Öğeleri |
|---|---|---|
| izleme.UseClassicEvents() | Şema bilgilerini içermeyen bir izlemeden klasik ETW olayları sağlar. | Genel Olaylar tablosu (Olay Türü Klasik veya WPP olduğunda) |
| iz. UseConnectedStandbyData() | Sistemin bağlı beklemeye girip çıktığına dair bir izlemeden veri sağlar. | CS Özet tablosu |
| izini sür. UseCpuIdleStates() | CPU C durumları hakkındaki bir izlemeden veri sağlar. | CPU Boşta Durumları tablosu (Tür Gerçek olduğunda) |
| izleme. UseCpuSamplingData() | İzden sağlanan veri, yönerge işaretçisinin düzenli örneklemesine dayanarak CPU kullanımı hakkında bilgi sunar. | CPU Kullanımı (Örneklenmiş) tablosu |
| iz.UseCpuSchedulingData() | Bağlam anahtarları ve hazır iş parçacığı olayları dahil olmak üzere CPU iş parçacığı zamanlaması hakkındaki bir izlemeden veri sağlar. | CPU Kullanımı (Kesin) tablosu |
| izleme.UseDevicePowerData() | Cihaz D durumları hakkında iz kaydından veri sağlar. | Cihaz DState tablosu |
| iz. UseDirectXData() | DirectX etkinliğiyle ilgili bir izlemeden veri sağlar. | GPU Kullanımı tablosu |
| traceUseDiskIOData() | Disk Giriş/Çıkış etkinliğiyle ilgili bir izleme hakkında veriler sağlar. | Disk Kullanımı tablosu |
| iz. UseEnergyEstimationData() | Energy Estimation Engine tarafından tahmin edilen her bir işlem başına enerji kullanımı hakkında bir izleme verisi sağlar. | Enerji Tahmin Altyapısı Özeti (Prosese göre) tablosu |
| iz. UseEnergyMeterData() | Enerji Ölçümü Arabiriminden (EMI) ölçülen enerji kullanımı hakkında bir izlemeden veri sağlar. | Enerji Tahmin Motoru (Emi tarafından) tablosu |
| izleme.UseFileIOData() | Dosya Girdi/Çıktı etkinliğiyle ilgili bir izlemeden veri sağlar. | Dosya G/Ç tablosu |
| iz.UseGenericEvents() | Bir izleme oturumundan açıkça belirtilmiş ve TraceLogging olayları sağlar. | Genel Olaylar tablosu (Olay Türü Bildirimli olduğunda veya TraceLogging olduğunda) |
| iz. UseHandles() | Aktif çekirdek tutamaçlarıyla ilgili bir izden kısmi veriler sağlar. | Tablo tutamaçları |
| iz. UseHardFaults() | İz kaydından sabit sayfa hataları hakkında veri sağlar. | Sabit Hatalar tablosu |
| "trace.UseHeapSnapshots()" | İşlem yığını kullanımı hakkında bir izlemeden veri sağlar. | Yığın Anlık Görüntü Tablosu |
| iz. UseHypercalls() | İzleme sırasında oluşan Hyper-V hiper çağrılar hakkında veri sağlar. | |
| iz.SekmeResimBölümleriKullan() | Görüntünün bölümleriyle ilgili bir izlemeden veri sağlar. | CPU Kullanımı (Örneklenmiş) tablosunun Bölüm Adı sütunu |
| iz. UseInterruptHandlingData() | Kesme Hizmeti Yordamı (ISR) ve Ertelenmiş Yordam Çağrısı (DPC) etkinliği hakkındaki bir izleme kaydından veri sağlar. | DPC/ISR tablosu |
| iz.UseMarks() | Bir izlemeden gelen işaretleri (etiketli zaman damgaları) sağlar. | İşaretler tablosu |
| trace.MemoryKullanımVerisiKullan() | Toplam sistem belleği kullanımıyla ilgili bir izlemeden veri sağlar. | Bellek Kullanımı tablosu |
| izleme.UseMetadata() | Daha fazla işlem yapmadan kullanılabilir izleme meta verileri sağlar. | Sistem Yapılandırması, İzlemeler ve Genel |
| izleme.UsePlatformIdleStates() | Bir sistemin hedef ve gerçek platform boşta durumları hakkında bir iz kaydından veri sağlar. | Platform Bekleme Durumu tablosu |
| izleme.UsePoolAllocations() | Çekirdek havuzu bellek kullanımına dair bir izlemenin verilerini sağlar. | Havuz Özeti tablosu |
| iz. UsePowerConfigurationData() | Sistem güç yapılandırması hakkında bir izleme kaydından veri sağlar. | Sistem Yapılandırması, Güç Ayarları |
| izleme.UsePowerDependencyCoordinatorData() | Aktif güç bağımlılığı koordinatörünün aşamalarıyla ilgili bir iz kaydından veri sağlar. | Bildirim Aşaması Özeti tablosu |
| iz. UseProcesses() | İzleme sırasında etkin olan işlemler ve bunların görüntüleri ve PDB'leri hakkında veri sağlar. | İşlemler tablosu; Görüntüler tablosu; Simgeler Hub'ı |
| iz. UseProcessorCounters() | İşlemci Sayacı İzleyicisi'nden (PCM) işlemci performans sayacı değerleriyle ilgili bir izlemeden veri sağlar. | |
| izleme.UseProcessorFrequencyData() | İşlemcilerin çalıştırıldığı sıklık hakkında bir izlemeden veri sağlar. | İşlemci Sıklığı tablosu (Tür Gerçek olduğunda) |
| iz.KullanıcıİşlemciProfilVerisi() | Etkin işlemci güç profiliyle ilgili bir izlemeden veri sağlar. | İşlemci Profilleri tablosu |
| iz. UseProcessorParkingData() | Hangi işlemcilerin park edilmiş veya park edilmemiş olduğuyla ilgili bir izlemeden veri sağlar. | İşlemci Park Durumu tablosu |
| iz. UseProcessorParkingLimits() | İzin verilen en fazla park edilmemiş işlemci sayısı hakkında bir izleme verisi sağlar. | Core Parking Cap State tablosu |
| iz. UseProcessorQualityOfServiceData() | Her işlemci için hizmet düzeyi kalitesiyle ilgili bir izlemeden veri sağlar. | İşlemci Qos Sınıfı tablosu |
| iz.UseProcessorThrottlingData() | İşlemci maksimum frekans kısıtlama ile ilgili bir izlemeden veri sağlar. | İşlemci Kısıtlamaları tablosu |
| izleme.UseReadyBootData() | Hazır Önyükleme'den önyükleme ön alma etkinliğiyle ilgili bir izlemeden veri sağlar. | Hazır Başlatma Olayları tablosu |
| izleme.UseReferenceSetData() | Her işlem tarafından kullanılan sanal bellek sayfalarına ilişkin bir izleme bilgisi sağlar. | Referans Kümesi tablosu |
| iz.UseRegionsOfInterest() | Xml yapılandırma dosyasında belirtilen bir izden adlandırılmış ilgi alanı aralıklarını sağlar. | İlgi Alanları tablosu |
| iz. UseRegistryData() | İzleme sırasında kayıt defteri etkinliği hakkında veri sağlar. | Kayıt defteri tablosu |
| iz. UseResidentSetData() | Her işlem için fiziksel bellekte yer alan sanal bellek sayfaları hakkında bir izlemeden veri sağlamaktadır. | Yerleşik Küme tablosu |
| izleme.UseRundownData() | Bir izden, iz verisi toplama işleminin gerçekleştiği aralıklar hakkında bilgi sağlar. | Grafik zaman çizelgesinde gölgeli bölgeler |
| iz. UseScheduledTasks() | İzleme sırasında çalıştırılan zamanlanmış görevler hakkında veri sağlar. | Zamanlanmış Görevler tablosu |
| iz.UseServices() | Etkin olan veya izleme sırasında durumlarının yakalanmış olduğu hizmetler hakkında veri sağlar. | Hizmetler tablosu; Sistem Yapılandırması, Hizmetler |
| İzleriKullan() | İzleme sırasında kaydedilen yığınlar hakkında veri sağlar. | |
| iz.UseStackEvents() | İzleme sırasında kaydedilen yığınlarla ilişkili olaylar hakkında veri sağlar. | Stacks tablosu |
| iz.UseStackTags() | Bir izlemedeki yığınları XML yapılandırma dosyasında belirtildiği gibi yığın etiketlerine gruplandıran bir eşleyici sağlar. | Yığın Etiketi ve Çerçeve Yığın Etiketleri gibi sütunlar |
| iz.SembollerKullan() | Bir iz için sembolleri yükleme olanağı sağlar. | Sembol Yollarını Yapılandırma; Sembolleri Yükle |
| izleme.Syscalls() kullan | İzleme sırasında gerçekleşen sistem çağrıları hakkında veri sağlar. | Sistem çağrıları tablosu |
| izleme.UseSystemMetadata() | Bir izleme kaydından sistem genelinde genel meta veriler sağlar. | Sistem Yapılandırması |
| izleme.UseSystemPowerSourceData() | Etkin sistem güç kaynağı (AC ve DC) hakkında bir izlemeden veri sağlar. | Sistem Güç Kaynağı tablosu |
| iz.UseSystemSleepData() | Genel sistem güç durumuyla ilgili bir izlemeden veri sağlar. | Power Transition tablosu |
| iz.UseTargetCpuIdleStates() | Hedef CPU C durumları hakkında bir izden veri sağlar. | CPU Boşta Durumları tablosu (Tür Hedef olduğunda) |
| izleme.UseTargetProcessorFrequencyData() | Hedef işlemci frekansları hakkında bir iz verisi sağlar. | İşlemci Sıklığı tablosu (Tür Hedef olduğunda) |
| izleme.UseThreads() | İzleme sırasında aktif olan iş parçacıkları hakkında veri sağlar. | İş Parçacığı Ömürleri Tablosu |
| TraceTraceIstatistikleriniKullan() | bir izlemedeki olaylar hakkında istatistikler sağlar. | Sistem Yapılandırması, İzleme İstatistikleri |
| iz. UseUtcData() | Microsoft'un Evrensel Telemetri İstemcisi (UTC) kullanılarak gerçekleştirilen telemetri etkinliği hakkındaki bir izlemeden gelen verileri sağlar. | Utc tablosu |
| odaklanmaPenceresiKullan() | Odaktaki etkin kullanıcı arabirimi penceresinde yapılan değişikliklerle ilgili bir izlemeden veri sağlar. | Odak tablosundaki pencere |
| izleme. UseWindowsTracePreprocessorEvents() | İzleme verilerinden alınan Windows yazılım izleme ön işlemcisi (WPP) olaylarını sağlar. | WPP İzleme tablosu; Genel Olaylar tablosu (Olay Türü WPP olduğunda) |
| izleme.UseWinINetData() | Windows internet (WinINet) aracılığıyla İnternet etkinliğiyle ilgili bir izlemeden veri sağlar. | Ayrıntılar tablosunu indirin |
| iz. UseWorkingSetData() | Her işlem veya çekirdek kategorisi için çalışma kümesinde yer alan sanal bellek sayfaları hakkındaki bir izlemeden veri sağlar. | Sanal Bellek Anlık Görüntüleri tablosu |
Ayrıca tüm kullanılabilir izleme verileri için ITraceSource'ta uzantı yöntemlerine bakın veya IntelliSense tarafından gösterilen "izleme" ile sağlanan yöntemi inceleyin.
Sonraki Adımlar
Bu genel bakışta TraceProcessor'ı ve erişebileceği yerleşik veri kaynaklarını kullanarak izleme verilerine erişmeyi öğrendiniz.
Sonraki adım, özel izleme verilerine erişmek için traceProcessor genişletmeyi
Windows developer