Eventos de coleta de lixo do runtime do .NET
Os eventos descritos neste artigo coletam informações relativas à coleta de lixo. Eles ajudam no diagnóstico e na depuração, incluindo a determinação de quantas vezes a coleta de lixo foi executada, a quantidade de memória liberada durante a coleta de lixo etc. Para obter mais informações sobre como usar esses eventos para fins de diagnóstico, consulte registro em log e rastreamento de aplicativos .NET.
Evento GCStart_V2
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCStart_V1 |
1 | Uma coleta de lixo foi iniciada. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
Count |
win:UInt32 |
O ncoleta de lixo. |
Depth |
win:UInt32 |
A geração que está sendo coletada. |
Reason |
win:UInt32 |
Por que a coleta de lixo foi disparada:0x0 – Alocação de heap de objeto pequeno.0x1 - Induzido.0x2 - Memória baixa.0x3 - Vazio.0x4 – Alocação de heap de objeto grande.0x5 - Espaço insuficiente (para heap de objetos pequenos).0x6 - Espaço insuficiente (para heap de objetos grandes).0x7 - Induzido, mas não forçado como bloqueio. |
Type |
win:UInt32 |
0x0 - O bloqueio da coleta de lixo ocorreu fora da coleta de lixo em segundo plano.0x1 – coleta de lixo em segundo plano.0x2 - O bloqueio da coleta de lixo ocorreu durante a coleta de lixo em segundo plano. |
ClrInstanceID |
win:UInt16 | ID exclusiva para a instância do CoreCLR. |
Evento GCEnd_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCEnd_V1 |
2 | A coleta de lixo terminou. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
Count |
win:UInt32 |
O ncoleta de lixo. |
Depth |
win:UInt32 |
A geração que foi coletada. |
ClrInstanceID |
win:UInt16 | ID exclusiva para a instância do CoreCLR. |
Evento GCHeapStats_V2
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Descrição |
---|---|---|
GCHeapStats_V2 |
4 | Mostra as estatísticas de heap no final de cada coleta de lixo. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
GenerationSize0 |
win:UInt64 |
O tamanho, em bytes, da memória da geração 0. |
TotalPromotedSize0 |
win:UInt64 |
O número de bytes promovidos da geração 0 para a geração 1. |
GenerationSize1 |
win:UInt64 |
O tamanho, em bytes, da memória de geração 1. |
TotalPromotedSize1 |
win:UInt64 |
O número de bytes promovidos da geração 1 para a geração 2. |
GenerationSize2 |
win:UInt64 |
O tamanho, em bytes, da memória de geração 2. |
TotalPromotedSize2 |
win:UInt64 |
O número de bytes que sobreviveram na geração 2 após a última coleção. |
GenerationSize3 |
win:UInt64 |
O tamanho, em bytes, do heap de objetos grandes. |
TotalPromotedSize3 |
win:UInt64 |
O número de bytes que sobreviveram no heap de objetos grandes após a última coleção. |
FinalizationPromotedSize |
win:UInt64 |
O tamanho total, em bytes, dos objetos que estão prontos para finalização. |
FinalizationPromotedCount |
win:UInt64 |
O número de objetos que estão prontos para finalização. |
PinnedObjectCount |
win:UInt32 |
O número de objetos fixados (inováveis). |
SinkBlockCount |
win:UInt32 |
O número de blocos de sincronização em uso. |
GCHandleCount |
win:UInt32 |
O número de identificadores de coleta de lixo em uso. |
ClrInstanceID |
win:UInt16 |
ID exclusiva para a instância do CoreCLR. |
GenerationSize4 |
win:UInt64 |
O tamanho, em bytes, do heap de objeto fixado. |
TotalPromotedSize4 |
win:UInt64 |
O número de bytes que sobreviveram no heap de objetos fixados após a última coleção. |
evento GCCreateSegment_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCCreateSegment_V1 |
5 | Um novo segmento de coleta de lixo foi criado. 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 dado | Descrição |
---|---|---|
Address |
win:UInt64 |
O endereço do segmento. |
Size |
win:UInt64 |
O tamanho do segmento. |
Type |
win:UInt32 |
0x0 - Heap de objetos pequenos. 0x1 – Heap de objetos grandes. 0x2 – heap somente leitura. |
ClrInstanceID |
win:UInt16 |
ID exclusiva para a instância do 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 determinado tamanho de segmento, nem deve tentar configurar a quantidade de memória disponível para alocações de segmento.
evento GCFreeSegment_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado 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 dado | Descrição |
---|---|---|
Address |
win:UInt64 |
O endereço do segmento. |
ClrInstanceID |
win:UInt16 |
ID exclusiva para a instância do CoreCLR. |
evento GCRestartEEBegin_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCRestartEEBegin_V1 |
7 | A retomada da suspensão do Common Language Runtime foi iniciada. |
Esse evento não tem nenhum dado de evento.
evento GCRestartEEEnd_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCRestartEEEnd_V1 |
3 | A retomada da suspensão do Common Language Runtime foi encerrada. |
Esse evento não tem nenhum dado de evento.
evento GCSuspendEEEnd_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCSuspendEEEnd_V1 |
8 | Fim da suspensão do mecanismo de execução para coleta de lixo. |
Esse evento não tem nenhum dado de evento.
evento GCSuspendEEBegin_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCSuspendEEBegin_V1 |
9 | Início da suspensão do mecanismo de execução para coleta de lixo. |
Nome do campo | Tipo de dado | Descrição |
---|---|---|
Count |
win:UInt32 |
O ncoleta de lixo. |
Reason |
win:UInt32 |
Motivo da suspensão do EE.0x0 : Suspender para outros0x1 : Suspender para GC.0x2 : suspender o desligamento do AppDomain.0x3 : suspender para o pitching de código.0x4 : suspender para desligamento.0x5 : suspender para depurador.0x6 : Suspender para a preparação do GC.0x7 : Suspender a varredura do depurador |
evento GCAllocationTick_V3
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Detalhado (5) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCAllocationTick_V3 |
10 | Cada vez que aproximadamente 100 KB são alocados. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
AllocationAmount |
win: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, esse campo conterá um valor truncado. Use AllocationAmount64 para alocações muito grandes. |
AllocationKind |
win:UInt32 |
0x0 – alocação de objeto pequeno (a alocação está em um heap de objetos pequeno).0x1 - Alocação de objeto grande (a alocação está no heap de objetos grandes). |
AllocationAmount64 |
win:UInt64 |
O tamanho da alocação, em bytes. Esse valor é preciso para alocações muito grandes. |
TypeId |
win:Pointer |
O endereço da MethodTable. Quando há vários tipos de objetos que foram alocados durante esse evento, esse é o endereço da 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 |
win:UInt32 |
O heap em que o objeto foi alocado. Esse valor é 0 (zero) ao ser executado com a coleta de lixo da estação de trabalho. |
Address |
win:Pointer |
O endereço do último objeto alocado. |
ClrInstanceID |
win:UInt16 |
ID exclusiva para a instância do CoreCLR. |
evento GCCreateConcurrentThread_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
ThreadingKeyword (0x10000) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCCreateConcurrentThread_V1 |
11 | O thread de coleta de lixo simultâneo foi criado. |
Esse evento não tem nenhum dado de evento.
evento GCTerminateConcurrentThread_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
ThreadingKeyword (0x10000) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCTerminateConcurrentThread_V1 |
12 | O thread de coleta de lixo simultâneo foi encerrado. |
Esse evento não tem nenhum dado de evento.
evento GCFinalizersBegin_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCFinalizersBegin_V1 |
14 | O início da execução de finalizadores. |
Esse evento não tem nenhum dado de evento.
evento GCFinalizersEnd_V1
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCFinalizersEnd_V1 |
13 | O fim da execução de finalizadores. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
Count |
win:UInt32 |
O número de finalizadores que foram executados. |
ClrInstanceID |
win:UInt16 | ID exclusiva para a instância de CLR ou CoreCLR. |
Evento SetGCHandle
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCHandleKeyword (0x2) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
SetGCHandle |
30 | Um identificador GC foi definido. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
HandleID |
win:Pointer |
O endereço do identificador alocado. |
ObjectID |
win:Pointer |
O endereço do objeto cujo identificador foi criado. |
Kind |
win:UInt32 |
O tipo de identificador GC que foi definido. 0x0 : WeakShort 0x1 : WeakLong 0x2 : Forte 0x3 : Fixado 0x4 : Variável0x5 : RefCounted 0x6 : Dependente0x7 : AsyncPinned0x8 : SizedRef |
Generation |
win:UInt32 |
A geração do objeto cujo identificador foi criado. |
AppDomainID |
win:UInt64 |
A ID do AppDomain. |
ClrInstanceID |
win:UInt16 |
ID exclusiva para a instância do CoreCLR. |
Evento DestroyGCHandle
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCHandleKeyword (0x2) |
Informativo (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
DestroyGCHandle |
31 | Um identificador de GC é destruído. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
HandleID |
win:Pointer |
O endereço do identificador destruído. |
ClrInstanceID |
win:UInt16 | ID exclusiva para a instância do CoreCLR. |
Evento PinObjectAtGCTime
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Detalhado (5) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
PinObjectAtGCTime |
33 | Um objeto foi fixado durante um GC. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
HandleID |
win:Pointer |
O endereço do identificador. |
ObjectID |
win:Pointer |
O endereço do objeto fixado. |
ObjectSize |
win:UInt64 |
O tamanho do objeto fixado. |
TypeName |
win:UnicodeString |
O nome do tipo do objeto fixado. |
ClrInstanceID |
win:UInt16 |
ID exclusiva para a instância do CoreCLR. |
Evento GCTriggered
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Detalhado (5) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCTriggered |
35 | Um GC foi disparado. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
Reason |
win:UInt32 |
O motivo pelo qual um GC foi disparado.0x0 : AllocSmall0x1 : induzido 0x2 : LowMemory 0x3 : Vazio 0x4 : AllocLarge 0x5 : OutOfSpaceSmallObjectHeap 0x6 : OutOfSpaceLargeObjectHeap 0x7 :InducedNoForce 0x8 : Estresse 0x9 : InducedLowMemory |
ClrInstanceID |
win:UInt16 |
ID exclusiva para a instância do CoreCLR. |
Evento IncreaseMemoryPressure
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informações (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
IncreaseMemoryPressure |
200 | A pressão de memória aumentou. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
ClrInstanceID |
win:UInt16 | ID exclusiva para a instância do CoreCLR. |
Evento DecreaseMemoryPressure
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informações (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
DecreaseMemoryPressure |
201 | A pressão de memória foi reduzida. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
BytesFreed |
win:UInt32 |
Bytes libertados. |
ClrInstanceID |
win:UInt16 |
ID exclusiva para a instância do CoreCLR. |
Evento GCMarkWithType
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Informações (4) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCMarkWithType |
202 | Uma raiz GC foi marcada durante a fase de marcação do GC. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
HeapNum |
win:UInt32 |
O número do heap. |
ClrInstanceID |
win:UInt16 | ID exclusiva para a instância do CoreCLR. |
Type |
win:UInt32 |
O tipo raiz do GC.0x0 : Pilha0x1 : Finalizador0x2 : Identificador0x3 : Mais antigo0x4 : SizedRef0x5 : Estouro |
Bytes |
win:UInt64 |
O número de bytes marcados. |
evento GCJoin_V2
A tabela a seguir mostra a palavra-chave e o nível:
Palavra-chave para elevar o evento | Nível |
---|---|
GCKeyword (0x1) |
Detalhado (5) |
A tabela a seguir mostra as informações do evento:
Acontecimento | ID do evento | Gerado quando |
---|---|---|
GCJoin_V2 |
203 | Um thread GC ingressado. |
A tabela a seguir mostra os dados do evento:
Nome do campo | Tipo de dado | Descrição |
---|---|---|
Heap |
win:UInt32 |
O número do heap |
JoinTime |
win:UInt32 |
Indica se esse evento é disparado no início de uma junção ou final de uma junção (0x0 para início da junção, 0x1 para o término da junção) |
JoinType |
win:UInt32 |
O tipo de junção. 0x0 : Última junção0x1 : Ingressar 0x2 : Reiniciar 0x3 : Primeira Junção Inversa0x4 : Junção Inversa |
ClrInstanceID |
win:UInt16 |
ID exclusiva para a instância do CoreCLR. |