Partilhar via


Eventos ETW na Biblioteca Paralela de Tarefas e PLINQ

Tanto a Biblioteca Paralela de Tarefas como o PLINQ geram eventos de Rastreio de Eventos para Windows (ETW) que pode utilizar para criar perfis e resolver problemas de aplicações com ferramentas como o Windows Analisador de Desempenho. No entanto, na maioria dos cenários, a melhor forma de criar perfis de código de aplicação paralela é utilizar o Visualizador de Simultaneidade no Visual Studio.

Eventos ETW da Biblioteca Paralela de Tarefas

Na estrutura EVENT_HEADER, o GUID providerId para eventos gerados pelo Parallel.Fore Parallel.ForEachParallel.Invoke é:

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

Início do Ciclo Paralelo

EVENT_DESCRIPTOR. Tarefa = 1

EVENT_DESCRIPTOR. ID = 1

Dados do Utilizador

Nome Tipo Descrição
OriginingTaskSchedulerID System.Int32 O ID do TaskScheduler que iniciou o ciclo.
OriginingTaskID System.Int32 O ID da tarefa que iniciou o ciclo.
ForkJoinContextID System.Int32 Um identificador exclusivo utilizado para indicar aninhamentos e pares para eventos com semântica fork/join.
Tipo de Operação System.Int32 Indica o tipo de ciclo:

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach
InclusiveFrom System.Int64 O valor inicial do contador de ciclos
ExclusiveTo System.Int64 O valor final do contador de ciclos

Fim do Ciclo Paralelo

EVENT_DESCRIPTOR. Tarefa = 2

EVENT_DESCRIPTOR. ID = 2

Dados do Utilizador

Nome Tipo Descrição
OriginingTaskSchedulerID System.Int32 O ID do TaskScheduler que iniciou o ciclo.
OriginingTaskID System.Int32 O ID da tarefa que iniciou o ciclo.
ForkJoinContextID System.Int32 Um identificador exclusivo utilizado para indicar aninhamentos e pares para eventos com semântica fork/join.
totalIterations System.Int64 O número total de iterações

Início da Invocação Paralela

EVENT_DESCRIPTOR. Tarefa = 3

EVENT_DESCRIPTOR. ID = 3

Dados do Utilizador

Nome Tipo Descrição
OriginingTaskSchedulerID System.Int32 O ID do TaskScheduler que iniciou o ciclo.
OriginingTaskID System.Int32 O ID da tarefa que iniciou o ciclo.
ForkJoinContextID System.Int32 Um identificador exclusivo utilizado para indicar aninhamentos e pares para eventos com semântica fork/join.
totalIterations System.Int64 O número total de iterações
operationType System.Int32 Indica o tipo de ciclo:

1 = ParallelInvoke

2 = ParallelFor

3 = ParallelForEach
ActionCount System.Int32 O número de ações que serão executadas na invocação paralela.

Fim da Invocação Paralela

EVENT_DESCRIPTOR. Tarefa = 4

EVENT_DESCRIPTOR. ID = 4

Dados do Utilizador

Nome Tipo Descrição
OriginingTaskSchedulerID System.Int32 O ID do TaskScheduler que iniciou o ciclo.
OriginingTaskID System.Int32 O ID da tarefa que iniciou o ciclo.
ForkJoinContextID System.Int32 Um identificador exclusivo utilizado para indicar aninhamentos e pares para eventos com semântica fork/join.

Eventos PLINQ ETW

O EVENT_HEADER. O GUID providerId para PLINQ é:

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

Início da Consulta Paralela

EVENT_DESCRIPTOR. Tarefa = 1

EVENT_DESCRIPTOR. ID = 1

Dados do Utilizador

Nome Tipo Descrição
OriginingTaskSchedulerID System.Int32 O ID do TaskScheduler que iniciou o ciclo.
OriginingTaskID System.Int32 O ID da tarefa que iniciou o ciclo.
QueryID System.Int32 Um identificador de consulta exclusivo.

Fim da Consulta Paralela

EVENT_DESCRIPTOR. Tarefa = 2

EVENT_DESCRIPTOR. ID = 2

Dados do Utilizador

Nome Tipo Descrição
OriginingTaskSchedulerID System.Int32 O ID do TaskScheduler que iniciou o ciclo.
OriginingTaskID System.Int32 O ID da tarefa que iniciou o ciclo.
QueryID System.Int32 Um identificador de consulta exclusivo.

Ver também