Megosztás a következőn keresztül:


ETW-események a párhuzamos feladattárban és a PLINQ-ban

A feladat párhuzamos kódtára és a PLINQ eseménykövetést hoz létre a Windows(ETW)-eseményekhez, amelyeket az alkalmazások profilkészítéséhez és hibaelhárításához használhat olyan eszközökkel, mint a Windows Teljesítményelemző. A legtöbb esetben azonban a párhuzamos alkalmazáskód profilkészítésének legjobb módja az egyidejűség-vizualizáció használata a Visual Studióban.

Feladat párhuzamos kódtára – ETW-események

A EVENT_HEADER struktúrában a () Parallel.ForEachParallel.Invoke által Parallel.Forlétrehozott események ProviderId GUID azonosítója a következő:

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

Párhuzamos hurok kezdete

EVENT_DESCRIPTOR. Tevékenység = 1

EVENT_DESCRIPTOR. Azonosító = 1

Felhasználói adat

Név Típus Leírás
EredetiTaskSchedulerID System.Int32 A hurkot elindító TaskScheduler azonosítója.
EredetitaskID System.Int32 A hurkot elindító tevékenység azonosítója.
ForkJoinContextID System.Int32 Egyedi azonosító, amely elágaztatással/illesztéssel rendelkező események beágyazását és párjait jelzi.
OperationType System.Int32 A hurok típusát jelzi:

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach
InclusiveFrom System.Int64 A hurokszámláló kiindulási értéke
ExclusiveTo System.Int64 A hurokszámláló záró értéke

Párhuzamos hurokvég

EVENT_DESCRIPTOR. Tevékenység = 2

EVENT_DESCRIPTOR. Azonosító = 2

Felhasználói adat

Név Típus Leírás
EredetiTaskSchedulerID System.Int32 A hurkot elindító TaskScheduler azonosítója.
EredetitaskID System.Int32 A hurkot elindító tevékenység azonosítója.
ForkJoinContextID System.Int32 Egyedi azonosító, amely elágaztatással/illesztéssel rendelkező események beágyazását és párjait jelzi.
totalIterations System.Int64 Az iterációk teljes száma

Párhuzamos meghívás kezdete

EVENT_DESCRIPTOR. Tevékenység = 3

EVENT_DESCRIPTOR. Azonosító = 3

Felhasználói adat

Név Típus Leírás
EredetiTaskSchedulerID System.Int32 A hurkot elindító TaskScheduler azonosítója.
EredetitaskID System.Int32 A hurkot elindító tevékenység azonosítója.
ForkJoinContextID System.Int32 Egyedi azonosító, amely elágaztatással/illesztéssel rendelkező események beágyazását és párjait jelzi.
totalIterations System.Int64 Az iterációk teljes száma
operationType System.Int32 A hurok típusát jelzi:

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach
ActionCount System.Int32 A párhuzamos meghívásban végrehajtandó műveletek száma.

Párhuzamos hívás vége

EVENT_DESCRIPTOR. Tevékenység = 4

EVENT_DESCRIPTOR. Azonosító = 4

Felhasználói adat

Név Típus Leírás
EredetiTaskSchedulerID System.Int32 A hurkot elindító TaskScheduler azonosítója.
EredetitaskID System.Int32 A hurkot elindító tevékenység azonosítója.
ForkJoinContextID System.Int32 Egyedi azonosító, amely elágaztatással/illesztéssel rendelkező események beágyazását és párjait jelzi.

PLINQ ETW-események

A EVENT_HEADER. A PLINQ ProviderId GUID azonosítója a következő:

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

Párhuzamos lekérdezés kezdete

EVENT_DESCRIPTOR. Tevékenység = 1

EVENT_DESCRIPTOR. Azonosító = 1

Felhasználói adat

Név Típus Leírás
EredetiTaskSchedulerID System.Int32 A hurkot elindító TaskScheduler azonosítója.
EredetitaskID System.Int32 A hurkot elindító tevékenység azonosítója.
Lekérdezésazonosító System.Int32 Egy egyedi lekérdezésazonosító.

Párhuzamos lekérdezés vége

EVENT_DESCRIPTOR. Tevékenység = 2

EVENT_DESCRIPTOR. Azonosító = 2

Felhasználói adat

Név Típus Leírás
EredetiTaskSchedulerID System.Int32 A hurkot elindító TaskScheduler azonosítója.
EredetitaskID System.Int32 A hurkot elindító tevékenység azonosítója.
Lekérdezésazonosító System.Int32 Egy egyedi lekérdezésazonosító.

Lásd még