É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 |
ID du TaskScheduler qui a démarré la boucle. |
|
OriginatingTaskID |
ID de la tâche qui a démarré la boucle. |
|
ForkJoinContextID |
Identificateur unique utilisé pour indiquer l'imbrication et les paires pour les événements comportant des sémantiques de bifurcation/jointure. |
|
OperationType |
Indique le type de boucle : 1 = ParallelInvoke 2 = ParallelFor 3 = ParallelForEach |
|
InclusiveFrom |
Valeur de départ du compteur de boucle |
|
ExclusiveTo |
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 |
ID du TaskScheduler qui a démarré la boucle. |
|
OriginatingTaskID |
ID de la tâche qui a démarré la boucle. |
|
ForkJoinContextID |
Identificateur unique utilisé pour indiquer l'imbrication et les paires pour les événements comportant des sémantiques de bifurcation/jointure. |
|
totalIterations |
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 |
ID du TaskScheduler qui a démarré la boucle. |
|
OriginatingTaskID |
ID de la tâche qui a démarré la boucle. |
|
ForkJoinContextID |
Identificateur unique utilisé pour indiquer l'imbrication et les paires pour les événements comportant des sémantiques de bifurcation/jointure. |
|
totalIterations |
Nombre total d'itérations |
|
operationType |
Indique le type de boucle : 1 = ParallelInvoke 2 = ParallelFor 3 = ParallelForEach |
|
ActionCount |
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 |
ID du TaskScheduler qui a démarré la boucle. |
|
OriginatingTaskID |
ID de la tâche qui a démarré la boucle. |
|
ForkJoinContextID |
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 |
ID du TaskScheduler qui a démarré la boucle. |
|
OriginatingTaskID |
ID de la tâche qui a démarré la boucle. |
|
QueryId |
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 |
ID du TaskScheduler qui a démarré la boucle. |
|
OriginatingTaskID |
ID de la tâche qui a démarré la boucle. |
|
QueryId |
Identificateur de requête unique. |
Voir aussi
Concepts
Bibliothèque parallèle de tâches