Partilhar via


Coleta de lixo ETW Eventos

Esses eventos coletam informações referentes à coleta de lixo. Eles ajudam no diagnóstico e depuração, incluindo determinar quantas vezes a coleta de lixo foi realizada, quanta memória foi liberada durante a coleta de lixo e assim por diante.

Esta categoria consiste nos seguintes eventos:

GCStart_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível. Para obter mais informações, consulte Palavras-chave e níveis de ETW CLR.

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCStart_V1 1 Iniciou-se a recolha de lixo.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
Count vitória:UInt32 A nésima coleta de lixo.
Profundidade vitória:UInt32 A geração que está sendo coletada.
Razão vitória:UInt32 Por que a coleta de lixo foi acionada:

0x0 - Alocação de heap de pequenos objetos.

0x1 - Induzido.

0x2 - Memória baixa.

0x3 - Vazio.

0x4 - Alocação de heap de objetos grandes.

0x5 - Fora do espaço (para pilha de objetos pequenos).

0x6 - Fora do espaço (para pilha de objetos grandes).

0x7 - Induzido, mas não forçado como bloqueio.

0x8 - Testes de esforço.

0x9 - O fio finalizador observou que o processo está com pouca memória e induziu um GC.

0x10 - O código do usuário induziu o GC e solicitou que fosse um GC compactador.
Type vitória:UInt32 0x0 - O bloqueio da coleta de lixo ocorreu fora da coleta de lixo de fundo.

0x1 - Recolha de lixo de fundo.

0x2 - O bloqueio da coleta de lixo ocorreu durante a coleta de lixo de fundo.
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.

Evento GCEnd_V1

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCEnd_V1 2 A recolha de lixo terminou.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
Count vitória:UInt32 A nésima coleta de lixo.
Profundidade vitória:UInt32 A geração que foi recolhida.
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.

GCHeapStats_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Description
GCHeapStats_V1 4 Mostra as estatísticas de pilha no final de cada coleta de lixo.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
GeraçãoTamanho0 vitória:UInt64 O tamanho, em bytes, da memória da geração 0.
TotalPromotedSize0 vitória:UInt64 O número de bytes que são promovidos da geração 0 para a geração 1.
GeraçãoTamanho1 vitória:UInt64 O tamanho, em bytes, da memória de geração 1.
TotalPromotedSize1 vitória:UInt64 O número de bytes que são promovidos da geração 1 para a geração 2.
GeraçãoTamanho2 vitória:UInt64 O tamanho, em bytes, da memória de geração 2.
TotalPromotedSize2 vitória:UInt64 O número de bytes que sobreviveram na geração 2 após a última coleção.
GeraçãoTamanho3 vitória:UInt64 O tamanho, em bytes, da pilha de objeto grande.
TotalPromotedSize3 vitória:UInt64 O número de bytes que sobreviveram no heap de objeto grande após a última coleção.
FinalizaçãoPromovidoTamanho vitória:UInt64 O tamanho total, em bytes, dos objetos que estão prontos para finalização.
FinalizaçãoPromovidoContagem vitória:UInt64 O número de objetos que estão prontos para finalização.
PinnedObjectCount vitória:UInt32 O número de objetos fixados (imóveis).
SinkBlockCount vitória:UInt32 O número de blocos de sincronização em uso.
GCHandleCount vitória:UInt32 O número de alças de coleta de lixo em uso.
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.

GCHeapStats_V2 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Description
GCHeapStats_V2 4 Mostra as estatísticas de pilha no final de cada coleta de lixo.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
GeraçãoTamanho0 vitória:UInt64 O tamanho, em bytes, da memória da geração 0.
TotalPromotedSize0 vitória:UInt64 O número de bytes que são promovidos da geração 0 para a geração 1.
GeraçãoTamanho1 vitória:UInt64 O tamanho, em bytes, da memória de geração 1.
TotalPromotedSize1 vitória:UInt64 O número de bytes que são promovidos da geração 1 para a geração 2.
GeraçãoTamanho2 vitória:UInt64 O tamanho, em bytes, da memória de geração 2.
TotalPromotedSize2 vitória:UInt64 O número de bytes que sobreviveram na geração 2 após a última coleção.
GeraçãoTamanho3 vitória:UInt64 O tamanho, em bytes, da pilha de objeto grande.
TotalPromotedSize3 vitória:UInt64 O número de bytes que sobreviveram no heap de objeto grande após a última coleção.
FinalizaçãoPromovidoTamanho vitória:UInt64 O tamanho total, em bytes, dos objetos que estão prontos para finalização.
FinalizaçãoPromovidoContagem vitória:UInt64 O número de objetos que estão prontos para finalização.
PinnedObjectCount vitória:UInt32 O número de objetos fixados (imóveis).
SinkBlockCount vitória:UInt32 O número de blocos de sincronização em uso.
GCHandleCount vitória:UInt32 O número de alças de coleta de lixo em uso.
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.
GeraçãoTamanho4 vitória:UInt64 O tamanho, em bytes, da pilha de objeto fixado.
TotalPromotedSize4 vitória:UInt64 O número de bytes que sobreviveram na pilha de objeto fixado após a última coleção.

GCCreateSegment_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCCreateSegment_V1 5 Foi criado um novo segmento de recolha de lixo. Além disso, quando o rastreamento é habilitado em um processo que já está em execução, esse evento é gerado para cada segmento existente.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
Endereço vitória:UInt64 O endereço do segmento.
Tamanho vitória:UInt64 O tamanho do segmento.
Type vitória:UInt32 0x0 - Pilha de objetos pequenos.

0x1 - Pilha de objetos grandes.

0x2 - Pilha somente leitura.
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.

Observe que o tamanho dos segmentos alocados pelo coletor de lixo é específico da implementação e está sujeito a alterações a qualquer momento, inclusive em atualizações periódicas. Seu aplicativo nunca deve fazer suposições sobre ou depender de um tamanho de segmento específico, nem deve tentar configurar a quantidade de memória disponível para alocações de segmento.

GCFreeSegment_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCFreeSegment_V1 6 Um segmento de coleta de lixo foi liberado.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
Endereço vitória:UInt64 O endereço do segmento.
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.

GCRestartEEBegin_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCRestartEEBegin_V1 7 A retomada da suspensão do common language runtime já começou.

Nenhum dado de evento.

GCRestartEEEnd_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCRestartEEEnd_V1 3 A retomada da suspensão do Common Language Runtime terminou.

Nenhum dado de evento.

GCSuspendEE_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCSuspendEE_V1 9 Início da suspensão do motor de execução para recolha de lixo.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
Razão vitória:UInt16 0x0 - Outros.

0x1 - Recolha de lixo.

0x2 - Desligamento do domínio do aplicativo.

0x3 - Pitching de código.

0x4 - Desligamento.

0x5 - Depurador.

0x6 - Preparação para recolha de lixo.
Count vitória:UInt32 A contagem de GC no momento. Normalmente, você veria um evento GC Start subsequente depois disso, e sua Count seria essa Count + 1 à medida que aumentamos o índice GC durante uma coleta de lixo.
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.

Evento GCSuspendEEEnd_V1

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCSuspendEEEnd_V1 8 Fim da suspensão do motor de execução para recolha de lixo.

Nenhum dado de evento.

GCAllocationTick_V2 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCAllocationTick_V2 10 Cada vez que aproximadamente 100 KB são alocados por heap de objeto. Ou seja, SOH, LOH e POH acumulam seus bytes alocados separadamente. No Server GC, isso é feito por heap.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
Montante da dotação vitória:UInt32 O tamanho da alocação, em bytes. Esse valor é preciso para alocações menores que o comprimento de um ULONG (4.294.967.295 bytes). Se a alocação for maior, este campo contém um valor truncado. Use AllocationAmount64 para alocações muito grandes.
AllocationKind vitória:UInt32 0x0 - Alocação de objetos pequenos (a alocação é em pequena pilha de objetos).
0x1 - Alocação de objetos grandes (a alocação é em grande pilha de objetos).
0x2 - Alocação de objeto fixo (a alocação é em heap de objeto fixo).
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.
Montante da alocação64 vitória:UInt64 O tamanho da alocação, em bytes. Este valor é preciso para alocações muito grandes.
TypeId win:Ponteiro O endereço do MethodTable. Quando há vários tipos de objetos que foram alocados durante esse evento, este é o endereço do MethodTable que corresponde ao último objeto alocado (o objeto que causou o limite de 100 KB a ser excedido).
TypeName win:UnicodeString O nome do tipo que foi alocado. Quando há vários tipos de objetos que foram alocados durante esse evento, esse é o tipo do último objeto alocado (o objeto que fez com que o limite de 100 KB fosse excedido).
HeapIndex vitória:UInt32 A pilha onde o objeto foi alocado. Esse valor é 0 (zero) ao executar com a coleta de lixo da estação de trabalho.

GCAllocationTick_V3 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCAllocationTick_V2 10 Cada vez que aproximadamente 100 KB são alocados por heap de objeto. Ou seja, SOH, LOH e POH acumulam seus bytes alocados separadamente. No Server GC, isso é feito por heap.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
Montante da dotação vitória:UInt32 O tamanho da alocação, em bytes. Esse valor é preciso para alocações menores que o comprimento de um ULONG (4.294.967.295 bytes). Se a alocação for maior, este campo contém um valor truncado. Use AllocationAmount64 para alocações muito grandes.
AllocationKind vitória:UInt32 0x0 - Alocação de objetos pequenos (a alocação é em pequena pilha de objetos).
0x1 - Alocação de objetos grandes (a alocação é em grande pilha de objetos).
0x2 - Alocação de objeto fixo (a alocação é em heap de objeto fixo).
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.
Montante da alocação64 vitória:UInt64 O tamanho da alocação, em bytes. Este valor é preciso para alocações muito grandes.
TypeId win:Ponteiro O endereço do MethodTable. Quando há vários tipos de objetos que foram alocados durante esse evento, este é o endereço do MethodTable que corresponde ao último objeto alocado (o objeto que causou o limite de 100 KB a ser excedido).
TypeName win:UnicodeString O nome do tipo que foi alocado. Quando há vários tipos de objetos que foram alocados durante esse evento, esse é o tipo do último objeto alocado (o objeto que fez com que o limite de 100 KB fosse excedido).
HeapIndex vitória:UInt32 A pilha onde o objeto foi alocado. Esse valor é 0 (zero) ao executar com a coleta de lixo da estação de trabalho.
Endereço win:Ponteiro O endereço do último objeto alocado.

GCFinalizersBegin_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCFinalizersBegin_V1 14 O início da execução dos finalizadores.

Nenhum dado de evento.

Evento GCFinalizersEnd_V1

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCFinalizersEnd_V1 13 O fim dos finalizadores em execução.

A tabela a seguir mostra os dados do evento:

Nome do campo Tipo de dados Description
Count vitória:UInt32 O número de finalizadores que foram executados.
ClrInstanceID vitória:UInt16 ID exclusivo para a instância de CLR ou CoreCLR.

GCCreateConcurrentThread_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)
ThreadingKeyword (0x10000) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCCreateConcurrentThread_V1 11 Foi criado um thread de coleta de lixo simultâneo.

Nenhum dado de evento.

GCTerminateConcurrentThread_V1 Evento

A tabela a seguir mostra a palavra-chave e o nível:

Palavra-chave para levantar o evento Level
GCKeyword (0x1) Informativo (4)
ThreadingKeyword (0x10000) Informativo (4)

A tabela a seguir mostra as informações do evento:

Evento ID do Evento Levantado quando
GCTerminateConcurrentThread_V1 12 O segmento de coleta de lixo simultâneo foi encerrado.

Nenhum dado de evento.

Consulte também