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. |