Share via


ETW-Ereignisse in der Task Parallel Library und PLINQ

Von der Task Parallel Library und PLINQ werden ETW (Ereignisablaufverfolgung für Windows)-Ereignisse generiert, die mit Tools wie dem Windows-Leistung-Analyzer zur Profilerstellung und Fehlerbehebung für Anwendungen verwendet werden können. Jedoch stellt in den meisten Szenarien die Verwendung des Parallelitätsschnellansicht der Visual Studio Team Edition die beste Lösung für die Profilerstellung für parallelen Anwendungscode dar.

Task Parallel Library-ETW-Ereignisse

In der EVENT_HEADER-Struktur lautet die ProviderId-GUID für von ParallelFor(), ParallelForEach() und ParallelInvoke() generierte Ereignisse wie folgt:

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

Beginn der parallelen Schleife

EVENT_DESCRIPTOR.Task = 1

EVENT_DESCRIPTOR.Id = 1

Benutzerdaten

Name

Typ

Beschreibung

OriginatingTaskSchedulerID

System.Int32

Die ID des TaskScheduler, von dem die Schleife gestartet wurde.

OriginatingTaskID

System.Int32

Die ID der Aufgabe, von der die Schleife gestartet wurde.

ForkJoinContextID

System.Int32

Ein eindeutiger Bezeichner, mit dem Schachtelung und Paare für Ereignisse mit Gabelung/Join-Semantik angegeben werden.

OperationType

System.Int32

Gibt den Typ der Schleife an:

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach

InclusiveFrom

System.Int64

Der Startwert des Schleifenzählers

ExclusiveTo

System.Int64

Der Endwert des Schleifenzählers

Ende der parallelen Schleife

EVENT_DESCRIPTOR.Task = 2

EVENT_DESCRIPTOR.Id = 2

Benutzerdaten

Name

Typ

Beschreibung

OriginatingTaskSchedulerID

System.Int32

Die ID des TaskScheduler, von dem die Schleife gestartet wurde.

OriginatingTaskID

System.Int32

Die ID der Aufgabe, von der die Schleife gestartet wurde.

ForkJoinContextID

System.Int32

Ein eindeutiger Bezeichner, mit dem Schachtelung und Paare für Ereignisse mit Gabelung/Join-Semantik angegeben werden.

totalIterations

System.Int64

Die Gesamtanzahl der Iterationen

Beginn des parallelen Aufrufs

EVENT_DESCRIPTOR.Task = 3

EVENT_DESCRIPTOR.Id = 3

Benutzerdaten

Name

Typ

Beschreibung

OriginatingTaskSchedulerID

System.Int32

Die ID des TaskScheduler, von dem die Schleife gestartet wurde.

OriginatingTaskID

System.Int32

Die ID der Aufgabe, von der die Schleife gestartet wurde.

ForkJoinContextID

System.Int32

Ein eindeutiger Bezeichner, mit dem Schachtelung und Paare für Ereignisse mit Gabelung/Join-Semantik angegeben werden.

totalIterations

System.Int64

Die Gesamtanzahl der Iterationen

operationType

System.Int32

Gibt den Typ der Schleife an:

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach

ActionCount

System.Int32

Die Anzahl der Aktionen, die im parallelen Aufruf ausgeführt werden.

Ende des parallelen Aufrufs

EVENT_DESCRIPTOR.Task = 4

EVENT_DESCRIPTOR.Id = 4

Benutzerdaten

Name

Typ

Beschreibung

OriginatingTaskSchedulerID

System.Int32

Die ID des TaskScheduler, von dem die Schleife gestartet wurde.

OriginatingTaskID

System.Int32

Die ID der Aufgabe, von der die Schleife gestartet wurde.

ForkJoinContextID

System.Int32

Ein eindeutiger Bezeichner, mit dem Schachtelung und Paare für Ereignisse mit Gabelung/Join-Semantik angegeben werden.

PLINQ-ETW-Ereignisse

Die EVENT_HEADER.ProviderId-GUID für PLINQ lautet:

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

Beginn der parallelen Abfrage

EVENT_DESCRIPTOR.Task = 1

EVENT_DESCRIPTOR.Id = 1

Benutzerdaten

Name

Typ

Beschreibung

OriginatingTaskSchedulerID

System.Int32

Die ID des TaskScheduler, von dem die Schleife gestartet wurde.

OriginatingTaskID

System.Int32

Die ID der Aufgabe, von der die Schleife gestartet wurde.

QueryID

System.Int32

Ein eindeutiger Abfragebezeichner.

Ende der parallelen Abfrage

EVENT_DESCRIPTOR.Task = 2

EVENT_DESCRIPTOR.Id = 2

Benutzerdaten

Name

Typ

Beschreibung

OriginatingTaskSchedulerID

System.Int32

Die ID des TaskScheduler, von dem die Schleife gestartet wurde.

OriginatingTaskID

System.Int32

Die ID der Aufgabe, von der die Schleife gestartet wurde.

QueryID

System.Int32

Ein eindeutiger Abfragebezeichner.

Siehe auch

Konzepte

Task Parallel Library

Paralleles LINQ (PLINQ)

Weitere Ressourcen

ETW-Ereignisse in .NET Framework