Partager via


Événements ETW dans la bibliothèque parallèle de tâches et PLINQ

La bibliothèque parallèle de tâches et PLINQ génèrent les événements de suivi d'événements pour Windows (ETW) que vous pouvez utiliser pour profiler et dépanner des applications à l'aide d'outils tels que l'analyseur de performances Windows. Toutefois, dans la plupart des scénarios, la meilleure méthode pour profiler du code d'application parallèle est d'utiliser le Visualiseur concurrence dans Visual Studio Team Edition.

Événements ETW de la bibliothèque parallèle de tâches

Dans la structure EVENT_HEADER, le ProviderId GUID pour les événements générés par ParallelFor(), ParallelForEach() et ParallelInvoke() est :

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

Début de la boucle parallèle

EVENT_DESCRIPTOR.Task = 1

EVENT_DESCRIPTOR.Id = 1

Données utilisateur

Nom

Type

Description

OriginatingTaskSchedulerID

System.Int32

ID du TaskScheduler qui a démarré la boucle.

OriginatingTaskID

System.Int32

ID de la tâche qui a démarré la boucle.

ForkJoinContextID

System.Int32

Identificateur unique utilisé pour indiquer l'imbrication et les paires pour les événements comportant des sémantiques de bifurcation/jointure.

OperationType

System.Int32

Indique le type de boucle :

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach

InclusiveFrom

System.Int64

Valeur de départ du compteur de boucle

ExclusiveTo

System.Int64

Valeur finale du compteur de boucle.

Fin de la boucle parallèle

EVENT_DESCRIPTOR.Task = 2

EVENT_DESCRIPTOR.Id = 2

Données utilisateur

Nom

Type

Description

OriginatingTaskSchedulerID

System.Int32

ID du TaskScheduler qui a démarré la boucle.

OriginatingTaskID

System.Int32

ID de la tâche qui a démarré la boucle.

ForkJoinContextID

System.Int32

Identificateur unique utilisé pour indiquer l'imbrication et les paires pour les événements comportant des sémantiques de bifurcation/jointure.

totalIterations

System.Int64

Nombre total d'itérations

Début de l'appel parallèle

EVENT_DESCRIPTOR.Task = 3

EVENT_DESCRIPTOR.Id = 3

Données utilisateur

Nom

Type

Description

OriginatingTaskSchedulerID

System.Int32

ID du TaskScheduler qui a démarré la boucle.

OriginatingTaskID

System.Int32

ID de la tâche qui a démarré la boucle.

ForkJoinContextID

System.Int32

Identificateur unique utilisé pour indiquer l'imbrication et les paires pour les événements comportant des sémantiques de bifurcation/jointure.

totalIterations

System.Int64

Nombre total d'itérations

operationType

System.Int32

Indique le type de boucle :

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach

ActionCount

System.Int32

Nombre des actions qui seront exécutées dans l'appel parallèle.

Fin de l'appel parallèle

EVENT_DESCRIPTOR.Task = 4

EVENT_DESCRIPTOR.Id = 4

Données utilisateur

Nom

Type

Description

OriginatingTaskSchedulerID

System.Int32

ID du TaskScheduler qui a démarré la boucle.

OriginatingTaskID

System.Int32

ID de la tâche qui a démarré la boucle.

ForkJoinContextID

System.Int32

Identificateur unique utilisé pour indiquer l'imbrication et les paires pour les événements comportant des sémantiques de bifurcation/jointure.

Événements ETW PLINQ

L'EVENT_HEADER.ProviderId GUID pour PLINQ est :

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

Début de requête parallèle

EVENT_DESCRIPTOR.Task = 1

EVENT_DESCRIPTOR.Id = 1

Données utilisateur

Nom

Type

Description

OriginatingTaskSchedulerID

System.Int32

ID du TaskScheduler qui a démarré la boucle.

OriginatingTaskID

System.Int32

ID de la tâche qui a démarré la boucle.

QueryId

System.Int32

Identificateur de requête unique.

Fin de requête parallèle

EVENT_DESCRIPTOR.Task = 2

EVENT_DESCRIPTOR.Id = 2

Données utilisateur

Nom

Type

Description

OriginatingTaskSchedulerID

System.Int32

ID du TaskScheduler qui a démarré la boucle.

OriginatingTaskID

System.Int32

ID de la tâche qui a démarré la boucle.

QueryId

System.Int32

Identificateur de requête unique.

Voir aussi

Concepts

Bibliothèque parallèle de tâches

Parallel LINQ (PLINQ)

Autres ressources

Événements ETW dans le .NET Framework