Sdílet prostřednictvím


Události Trasování událostí pro Windows v knihovně Task Parallel Library a PLINQ

Paralelní knihovna úloh i PLINQ generují události trasování událostí pro Windows (ETW), které můžete použít k profilování a odstraňování potíží s aplikacemi pomocí nástrojů, jako je windows Analyzátor výkonu. Ve většině scénářů je ale nejlepším způsobem profilování paralelního kódu aplikace použití vizualizéru souběžnosti v sadě Visual Studio.

Události Trasování událostí pro Windows paralelní knihovny úloh

Ve struktuře EVENT_HEADER identifikátor GUID ProviderId pro události vygenerované nástrojem Parallel.ForParallel.ForEach a Parallel.Invoke je následující:

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

Začátek paralelní smyčky

EVENT_DESCRIPTOR. Úkol = 1

EVENT_DESCRIPTOR. ID = 1

Uživatelská data

Název Typ Popis
OriginatingTaskSchedulerID System.Int32 ID TaskScheduler, který spustil smyčku.
Id původního tokenu System.Int32 ID úlohy, která spustila smyčku.
ForkJoinContextID System.Int32 Jedinečný identifikátor, který se používá k označení vnoření a párování pro události se sémantikou forku/spojení.
Typ operace System.Int32 Určuje typ smyčky:

1 = ParallelInvoke

2 = ParalelníFor

3 = ParallelForEach
InclusiveFrom System.Int64 Počáteční hodnota čítače smyčky
ExclusiveTo System.Int64 Koncová hodnota čítače smyčky

Konec paralelní smyčky

EVENT_DESCRIPTOR. Úkol = 2

EVENT_DESCRIPTOR. ID = 2

Uživatelská data

Název Typ Popis
OriginatingTaskSchedulerID System.Int32 ID TaskScheduler, který spustil smyčku.
Id původního tokenu System.Int32 ID úlohy, která spustila smyčku.
ForkJoinContextID System.Int32 Jedinečný identifikátor, který se používá k označení vnoření a párování pro události se sémantikou forku/spojení.
totalIterations System.Int64 Celkový počet iterací

Začátek paralelního volání

EVENT_DESCRIPTOR. Úkol = 3

EVENT_DESCRIPTOR. ID = 3

Uživatelská data

Název Typ Popis
OriginatingTaskSchedulerID System.Int32 ID TaskScheduler, který spustil smyčku.
Id původního tokenu System.Int32 ID úlohy, která spustila smyčku.
ForkJoinContextID System.Int32 Jedinečný identifikátor, který se používá k označení vnoření a párování pro události se sémantikou forku/spojení.
totalIterations System.Int64 Celkový počet iterací
operationType System.Int32 Určuje typ smyčky:

1 = ParallelInvoke

2 = ParalelníFor

3 = ParallelForEach
Počet akcí System.Int32 Počet akcí, které budou provedeny v paralelním volání.

Konec paralelního volání

EVENT_DESCRIPTOR. Úkol = 4

EVENT_DESCRIPTOR. ID = 4

Uživatelská data

Název Typ Popis
OriginatingTaskSchedulerID System.Int32 ID TaskScheduler, který spustil smyčku.
Id původního tokenu System.Int32 ID úlohy, která spustila smyčku.
ForkJoinContextID System.Int32 Jedinečný identifikátor, který se používá k označení vnoření a párování pro události se sémantikou forku/spojení.

PLINQ ETW – události

The EVENT_HEADER. ProviderId GUID pro PLINQ je:

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

Začátek paralelního dotazu

EVENT_DESCRIPTOR. Úkol = 1

EVENT_DESCRIPTOR. ID = 1

Uživatelská data

Název Typ Popis
OriginatingTaskSchedulerID System.Int32 ID TaskScheduler, který spustil smyčku.
Id původního tokenu System.Int32 ID úlohy, která spustila smyčku.
ID dotazu System.Int32 Jedinečný identifikátor dotazu.

Konec paralelního dotazu

EVENT_DESCRIPTOR. Úkol = 2

EVENT_DESCRIPTOR. ID = 2

Uživatelská data

Název Typ Popis
OriginatingTaskSchedulerID System.Int32 ID taskScheduler, který spustil smyčku.
Id původního nádobí System.Int32 ID úlohy, která spustila smyčku.
ID dotazu System.Int32 Jedinečný identifikátor dotazu.

Viz také