Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Både Aktivitetsparallellt bibliotek och PLINQ genererar händelsespårning för Windows-händelser (ETW) som du kan använda för att profilera och felsöka program med hjälp av verktyg som Windows Prestandaanalys. I de flesta fall är dock det bästa sättet att profilera parallell programkod att använda Concurrency Visualizer i Visual Studio.
ETW-händelser för aktivitetsparallellt bibliotek
I den EVENT_HEADER strukturen är ProviderId-GUID:t för händelser som genereras av Parallel.Foroch Parallel.ForEachParallel.Invoke :
0x2e5dba47, 0xa3d2, 0x4d16, 0x8e, 0xe0, 0x66, 0x71, 0xff, 0xdc, 0xd7, 0xb5
Parallell loop börjar
EVENT_DESCRIPTOR. Uppgift = 1
EVENT_DESCRIPTOR. ID = 1
Användardata
| Namn | Typ | Beskrivning |
|---|---|---|
| OriginatingTaskSchedulerID | System.Int32 | ID:t för TaskScheduler som startade loopen. |
| OriginatingTaskID | System.Int32 | ID:t för uppgiften som startade loopen. |
| ForkJoinContextID | System.Int32 | En unik identifierare som används för att ange kapsling och par för händelser med förgrening/kopplingssemantik. |
| Åtgärdstyp | System.Int32 | Anger typ av loop: 1 = ParallelInvoke 2 = ParallelFor 3 = ParallelForEach |
| InclusiveFrån | System.Int64 | Startvärdet för loopräknaren |
| ExclusiveTo | System.Int64 | Slutvärdet för loopräknaren |
Parallell loopslut
EVENT_DESCRIPTOR. Uppgift = 2
EVENT_DESCRIPTOR. ID = 2
Användardata
| Namn | Typ | Beskrivning |
|---|---|---|
| OriginatingTaskSchedulerID | System.Int32 | ID:t för TaskScheduler som startade loopen. |
| OriginatingTaskID | System.Int32 | ID:t för uppgiften som startade loopen. |
| ForkJoinContextID | System.Int32 | En unik identifierare som används för att ange kapsling och par för händelser med förgrening/kopplingssemantik. |
| totalIterations | System.Int64 | Det totala antalet iterationer |
Parallell invoke begin
EVENT_DESCRIPTOR. Uppgift = 3
EVENT_DESCRIPTOR. ID = 3
Användardata
| Namn | Typ | Beskrivning |
|---|---|---|
| OriginatingTaskSchedulerID | System.Int32 | ID:t för TaskScheduler som startade loopen. |
| OriginatingTaskID | System.Int32 | ID:t för uppgiften som startade loopen. |
| ForkJoinContextID | System.Int32 | En unik identifierare som används för att ange kapsling och par för händelser med förgrening/kopplingssemantik. |
| totalIterations | System.Int64 | Det totala antalet iterationer |
| operationType | System.Int32 | Anger typ av loop: 1 = ParallelInvoke 2 = ParallelFor 3 = ParallelForEach |
| ActionCount | System.Int32 | Antalet åtgärder som ska köras i den parallella anropet. |
Parallell anropsslut
EVENT_DESCRIPTOR. Uppgift = 4
EVENT_DESCRIPTOR. ID = 4
Användardata
| Namn | Typ | Beskrivning |
|---|---|---|
| OriginatingTaskSchedulerID | System.Int32 | ID:t för TaskScheduler som startade loopen. |
| OriginatingTaskID | System.Int32 | ID:t för uppgiften som startade loopen. |
| ForkJoinContextID | System.Int32 | En unik identifierare som används för att ange kapsling och par för händelser med förgrening/kopplingssemantik. |
PLINQ ETW-händelser
Den EVENT_HEADER. ProviderId GUID för PLINQ är:
0x159eeeec, 0x4a14, 0x4418, 0xa8, 0xfe, 0xfa, 0xab, 0xcd, 0x98, 0x78, 0x87
Parallell fråga börjar
EVENT_DESCRIPTOR. Uppgift = 1
EVENT_DESCRIPTOR. ID = 1
Användardata
| Namn | Typ | Beskrivning |
|---|---|---|
| OriginatingTaskSchedulerID | System.Int32 | ID:t för TaskScheduler som startade loopen. |
| OriginatingTaskID | System.Int32 | ID:t för uppgiften som startade loopen. |
| QueryID | System.Int32 | En unik frågeidentifierare. |
Parallell frågeslut
EVENT_DESCRIPTOR. Uppgift = 2
EVENT_DESCRIPTOR. ID = 2
Användardata
| Namn | Typ | Beskrivning |
|---|---|---|
| OriginatingTaskSchedulerID | System.Int32 | ID:t för TaskScheduler som startade loopen. |
| OriginatingTaskID | System.Int32 | ID:t för uppgiften som startade loopen. |
| QueryID | System.Int32 | En unik frågeidentifierare. |