Görev Paralel Kitaplığı ve PLINQ'da ETW Olayları

Hem Görev Paralel Kitaplığı hem de PLINQ, Windows Performans Analizi gibi araçları kullanarak uygulamaların profilini oluşturmak ve sorun gidermek için kullanabileceğiniz Windows için Olay İzleme (ETW) olayları oluşturur. Ancak çoğu senaryoda, paralel uygulama kodunun profilini oluşturmanın en iyi yolu Visual Studio'da Eşzamanlılık Görselleştiricisi'ni kullanmaktır.

Görev Paralel Kitaplığı ETW Olayları

EVENT_HEADER yapısında, tarafından Parallel.ForParallel.ForEach oluşturulan olaylar için ProviderId GUID değeri şu Parallel.Invoke şekildedir:

0x2e5dba47, 0xa3d2, 0x4d16, 0x8e, 0xe0, 0x66, 0x71, 0xff, 0xdc, 0xd7, 0xb5

Paralel Döngü Başlangıcı

EVENT_DESCRIPTOR. Görev = 1

EVENT_DESCRIPTOR. Kimlik = 1

Kullanıcı Verileri

Ad Tür Açıklama
OriginatingTaskSchedulerID System.Int32 Döngüsü başlatan TaskScheduler'ın kimliği.
OriginatingTaskID System.Int32 Döngünün başlatıldığını görevin kimliği.
ForkJoinContextID System.Int32 Çatal/birleştirme semantiğine sahip olaylar için iç içe yerleştirmeyi ve çiftleri göstermek için kullanılan benzersiz tanımlayıcı.
OperationType System.Int32 Döngünün türünü gösterir:

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach
InclusiveFrom System.Int64 Döngü sayacının başlangıç değeri
Özel Kullanım System.Int64 Döngü sayacının bitiş değeri

Paralel Döngü Ucu

EVENT_DESCRIPTOR. Görev = 2

EVENT_DESCRIPTOR. Kimlik = 2

Kullanıcı Verileri

Ad Tür Açıklama
OriginatingTaskSchedulerID System.Int32 Döngüsü başlatan TaskScheduler'ın kimliği.
OriginatingTaskID System.Int32 Döngünün başlatıldığını görevin kimliği.
ForkJoinContextID System.Int32 Çatal/birleştirme semantiğine sahip olaylar için iç içe yerleştirmeyi ve çiftleri göstermek için kullanılan benzersiz tanımlayıcı.
totalIterations System.Int64 Toplam yineleme sayısı

Paralel Çağırma Başlangıcı

EVENT_DESCRIPTOR. Görev = 3

EVENT_DESCRIPTOR. Kimlik = 3

Kullanıcı Verileri

Ad Tür Açıklama
OriginatingTaskSchedulerID System.Int32 Döngüsü başlatan TaskScheduler'ın kimliği.
OriginatingTaskID System.Int32 Döngünün başlatıldığını görevin kimliği.
ForkJoinContextID System.Int32 Çatal/birleştirme semantiğine sahip olaylar için iç içe yerleştirmeyi ve çiftleri göstermek için kullanılan benzersiz tanımlayıcı.
totalIterations System.Int64 Toplam yineleme sayısı
operationType System.Int32 Döngünün türünü gösterir:

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach
ActionCount System.Int32 Paralel çağırmada yürütülecek eylem sayısı.

Paralel Çağırma Sonu

EVENT_DESCRIPTOR. Görev = 4

EVENT_DESCRIPTOR. Kimlik = 4

Kullanıcı Verileri

Ad Tür Açıklama
OriginatingTaskSchedulerID System.Int32 Döngüsü başlatan TaskScheduler'ın kimliği.
OriginatingTaskID System.Int32 Döngünün başlatıldığını görevin kimliği.
ForkJoinContextID System.Int32 Çatal/birleştirme semantiğine sahip olaylar için iç içe yerleştirmeyi ve çiftleri göstermek için kullanılan benzersiz tanımlayıcı.

PLINQ ETW Olayları

The EVENT_HEADER. PLINQ için ProviderId GUID değeri:

0x159eeeec, 0x4a14, 0x4418, 0xa8, 0xfe, 0xfa, 0xab, 0xcd, 0x98, 0x78, 0x87

Paralel Sorgu Başlangıcı

EVENT_DESCRIPTOR. Görev = 1

EVENT_DESCRIPTOR. Kimlik = 1

Kullanıcı Verileri

Ad Tür Açıklama
OriginatingTaskSchedulerID System.Int32 Döngüsü başlatan TaskScheduler'ın kimliği.
OriginatingTaskID System.Int32 Döngünün başlatıldığını görevin kimliği.
Queryıd System.Int32 Benzersiz bir sorgu tanımlayıcısı.

Paralel Sorgu Sonu

EVENT_DESCRIPTOR. Görev = 2

EVENT_DESCRIPTOR. Kimlik = 2

Kullanıcı Verileri

Ad Tür Açıklama
OriginatingTaskSchedulerID System.Int32 Döngüsü başlatan TaskScheduler'ın kimliği.
OriginatingTaskID System.Int32 Döngünün başlatıldığını görevin kimliği.
Queryıd System.Int32 Benzersiz bir sorgu tanımlayıcısı.

Ayrıca bkz.