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
- Evento GCEnd_V1
- GCHeapStats_V1 Evento
- GCHeapStats_V2 Evento
- GCCreateSegment_V1 Evento
- GCFreeSegment_V1 Evento
- GCRestartEEBegin_V1 Evento
- GCRestartEEEnd_V1 Evento
- GCSuspendEE_V1 Evento
- Evento GCSuspendEEEnd_V1
- GCAllocationTick_V2 Evento
- GCAllocationTick_V3 Evento
- GCFinalizersBegin_V1 Evento
- Evento GCFinalizersEnd_V1
- GCCreateConcurrentThread_V1 Evento
- GCTerminateConcurrentThread_V1 Evento
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.