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