Condividi tramite


Eventi ETW di Garbage Collection

Questi eventi raccolgono informazioni relative a Garbage Collection. ai fini della diagnostica e del debug, tra cui stabilire quante volte è stato eseguito il processo di Garbage Collection, la quantità di memoria liberata durante la procedura di Garbage Collection e così via.

Questa categoria include i seguenti eventi:

GCStart_V1 Event

La tabella seguente illustra la parola chiave e il livello Per altre informazioni, vedere Parole chiave e livelli CLR ETW.

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCStart_V1 1 È stata avviata una procedura di Garbage Collection.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Count win:UInt32 L' ennesimaGarbage Collection.
Livello di annidamento win:UInt32 La generazione che viene raccolta.
Motivo win:UInt32 Motivo per cui è stata attivata la Garbage Collection:

0x0 - Allocazione heap oggetto piccolo.

0x1 - Indotto.

0x2 - Memoria insufficiente.

0x3 - Vuoto.

0x4 - Allocazione heap oggetto grande.

0x5 - Spazio esaurito (per heap oggetto piccolo).

0x6 - Spazio esaurito (per heap oggetto grande).

0x7 - Indotto ma non forzato come blocco.

0x8 - Test di stress.

0x9 : il thread finalizzatore osservato che il processo è in memoria insufficiente e ha indotto un GC.

0x10: il codice utente ha indotto GC e ne ha richiesto la compattazione GC.
Type win:UInt32 0x0 - Un'operazione di Garbage Collection bloccante è stata eseguita all'esterno della procedura di Garbage Collection in background.

0x1 - Garbage Collection in background.

0x2 - Un'operazione di Garbage Collection bloccante è stata eseguita durante la procedura di Garbage Collection in background.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

GCEnd_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCEnd_V1 2 È stata terminata una procedura di Garbage Collection.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Count win:UInt32 L' ennesimaGarbage Collection.
Livello di annidamento win:UInt32 La generazione che è stata raccolta.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

GCHeapStats_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Descrizione
GCHeapStats_V1 4 Mostra le statistiche heap alla fine di ogni Garbage Collection.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
GenerationSize0 win:UInt64 Dimensione, in byte, della memoria della generazione 0.
TotalPromotedSize0 win:UInt64 Numero di byte promossi dalla generazione 0 alla generazione 1.
GenerationSize1 win:UInt64 Dimensione, in byte, della memoria di generazione 1.
TotalPromotedSize1 win:UInt64 Numero di byte promossi dalla generazione 1 alla generazione 2.
GenerationSize2 win:UInt64 Dimensione, in byte, della memoria della generazione 2.
TotalPromotedSize2 win:UInt64 Numero di byte rimasti nella generazione 2 dopo l'ultima raccolta.
GenerationSize3 win:UInt64 Dimensione, in byte, dell'heap oggetto grande.
TotalPromotedSize3 win:UInt64 Numero di byte rimasti nell'heap oggetto grande dopo l'ultima raccolta.
FinalizationPromotedSize win:UInt64 Dimensione totale, in byte, degli oggetti pronti per la finalizzazione.
FinalizationPromotedCount win:UInt64 Numero di oggetti pronti per la finalizzazione.
PinnedObjectCount win:UInt32 Numero di oggetti bloccati (fissi).
SinkBlockCount win:UInt32 Numero di blocchi di sincronizzazione in uso.
GCHandleCount win:UInt32 Numero di handle di Garbage Collection in uso.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

evento GCHeapStats_V2

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Descrizione
GCHeapStats_V2 4 Mostra le statistiche heap alla fine di ogni Garbage Collection.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
GenerationSize0 win:UInt64 Dimensione, in byte, della memoria della generazione 0.
TotalPromotedSize0 win:UInt64 Numero di byte promossi dalla generazione 0 alla generazione 1.
GenerationSize1 win:UInt64 Dimensione, in byte, della memoria di generazione 1.
TotalPromotedSize1 win:UInt64 Numero di byte promossi dalla generazione 1 alla generazione 2.
GenerationSize2 win:UInt64 Dimensione, in byte, della memoria della generazione 2.
TotalPromotedSize2 win:UInt64 Numero di byte rimasti nella generazione 2 dopo l'ultima raccolta.
GenerationSize3 win:UInt64 Dimensione, in byte, dell'heap oggetto grande.
TotalPromotedSize3 win:UInt64 Numero di byte rimasti nell'heap oggetto grande dopo l'ultima raccolta.
FinalizationPromotedSize win:UInt64 Dimensione totale, in byte, degli oggetti pronti per la finalizzazione.
FinalizationPromotedCount win:UInt64 Numero di oggetti pronti per la finalizzazione.
PinnedObjectCount win:UInt32 Numero di oggetti bloccati (fissi).
SinkBlockCount win:UInt32 Numero di blocchi di sincronizzazione in uso.
GCHandleCount win:UInt32 Numero di handle di Garbage Collection in uso.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.
GenerationSize4 win:UInt64 Dimensione, in byte, dell'heap dell'oggetto aggiunto.
TotalPromotedSize4 win:UInt64 Numero di byte sopravvissuti nell'heap dell'oggetto aggiunto dopo l'ultima raccolta.

GCCreateSegment_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCCreateSegment_V1 5 È stato creato un nuovo segmento di Garbage Collection. Inoltre, quando la traccia è attivata su un processo già in esecuzione, questo evento viene generato per ogni segmento esistente.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Address win:UInt64 Indirizzo del segmento.
Dimensione win:UInt64 Dimensione del segmento.
Type win:UInt32 0x0 - Heap oggetto piccolo.

0x1 - Heap oggetto grande.

0x2 - Heap di sola lettura.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

Si noti che la dimensione dei segmenti allocati dal Garbage Collector è specifico dell'implementazione ed è soggetta a modifiche in qualsiasi momento, tra cui aggiornamenti periodici. L'applicazione non deve dare per scontata o dipendere da una particolare dimensione del segmento, né provare a configurare la quantità di memoria disponibile per le allocazioni di segmenti.

GCFreeSegment_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCFreeSegment_V1 6 È stato rilasciato un segmento di Garbage Collection.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Address win:UInt64 Indirizzo del segmento.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

GCRestartEEBegin_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCRestartEEBegin_V1 7 Il ripristino dalla sospensione di Common Language Runtime è iniziato.

Nessun dato dell'evento.

GCRestartEEEnd_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCRestartEEEnd_V1 3 Il ripristino dalla sospensione di Common Language Runtime è terminato.

Nessun dato dell'evento.

GCSuspendEE_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCSuspendEE_V1 9 Inizio della sospensione del motore di esecuzione di operazioni di Garbage Collection.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Motivo win:UInt16 0x0 - Altro.

0x1 - Garbage Collection.

0x2 - Arresto del dominio applicazione.

0x3. - Lancio del codice.

0x4 - Arresto.

0x5 - Debugger.

0x6 - Preparazione per l'operazione di Garbage Collection.
Conteggio win:UInt32 Il conteggio di Garbage Collection al momento. In genere, dopo di questo si assiste a un evento di avvio GC successivo. Il conteggio corrisponde al conteggio corrente + 1 quando si aumenta l'indice di GC durante un'operazione di Garbage Collection.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

GCSuspendEEEnd_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCSuspendEEEnd_V1 8 Fine della sospensione del motore di esecuzione di operazioni di Garbage Collection.

Nessun dato dell'evento.

GCAllocationTick_V2 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCAllocationTick_V2 10 Ogni volta che vengono allocati circa 100 KB per ogni heap oggetto. Ovvero, SOH, LOH e POH accumulano separatamente i byte allocati. In Server GC questa operazione viene eseguita per ogni heap.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
AllocationAmount win:UInt32 Dimensione dell'allocazione, in byte. Questo valore è preciso per le allocazioni minori della lunghezza di un ULONG (4.294.967.295 byte). Se l'allocazione è maggiore, questo campo contiene un valore troncato. Usare AllocationAmount64 per le allocazioni di dimensioni molto grandi.
AllocationKind win:UInt32 0x0 - Allocazione di oggetti piccoli (l'allocazione è nell'heap oggetto piccolo).
0x1 - Allocazione di oggetti grandi (l'allocazione è nell'heap oggetto grande).
0x2 - Allocazione di oggetti aggiunti (allocazione nell'heap dell'oggetto aggiunto).
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.
AllocationAmount64 win:UInt64 Dimensione dell'allocazione, in byte. Questo valore è preciso per le allocazioni di dimensioni molto grandi.
TypeId win:Pointer Indirizzo di MethodTable. Quando sono presenti diversi tipi di oggetti allocati durante questo evento, questo è l'indirizzo di MethodTable che corrisponde all'ultimo oggetto allocato (l'oggetto che ha causato il superamento della soglia di 100 KB).
TypeName win:UnicodeString Nome del tipo che è stato allocato. Quando sono presenti diversi tipi di oggetti allocati durante questo evento, questo è il tipo dell'ultimo oggetto allocato (l'oggetto che ha causato il superamento della soglia di 100 KB).
HeapIndex win:UInt32 Heap in cui l'oggetto è stato allocato. Questo valore è 0 (zero) durante l'esecuzione della procedura di Garbage Collection per workstation.

evento GCAllocationTick_V3

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCAllocationTick_V2 10 Ogni volta che vengono allocati circa 100 KB per ogni heap oggetto. Ovvero, SOH, LOH e POH accumulano separatamente i byte allocati. In Server GC questa operazione viene eseguita per ogni heap.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
AllocationAmount win:UInt32 Dimensione dell'allocazione, in byte. Questo valore è preciso per le allocazioni minori della lunghezza di un ULONG (4.294.967.295 byte). Se l'allocazione è maggiore, questo campo contiene un valore troncato. Usare AllocationAmount64 per le allocazioni di dimensioni molto grandi.
AllocationKind win:UInt32 0x0 - Allocazione di oggetti piccoli (l'allocazione è nell'heap oggetto piccolo).
0x1 - Allocazione di oggetti grandi (l'allocazione è nell'heap oggetto grande).
0x2 - Allocazione di oggetti aggiunti (allocazione nell'heap dell'oggetto aggiunto).
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.
AllocationAmount64 win:UInt64 Dimensione dell'allocazione, in byte. Questo valore è preciso per le allocazioni di dimensioni molto grandi.
TypeId win:Pointer Indirizzo di MethodTable. Quando sono presenti diversi tipi di oggetti allocati durante questo evento, questo è l'indirizzo di MethodTable che corrisponde all'ultimo oggetto allocato (l'oggetto che ha causato il superamento della soglia di 100 KB).
TypeName win:UnicodeString Nome del tipo che è stato allocato. Quando sono presenti diversi tipi di oggetti allocati durante questo evento, questo è il tipo dell'ultimo oggetto allocato (l'oggetto che ha causato il superamento della soglia di 100 KB).
HeapIndex win:UInt32 Heap in cui l'oggetto è stato allocato. Questo valore è 0 (zero) durante l'esecuzione della procedura di Garbage Collection per workstation.
Address win:Pointer Indirizzo dell'ultimo oggetto allocato.

GCFinalizersBegin_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCFinalizersBegin_V1 14 Inizio dell'esecuzione dei finalizzatori.

Nessun dato dell'evento.

GCFinalizersEnd_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCFinalizersEnd_V1 13 Fine dell'esecuzione dei finalizzatori.

La tabella seguente mostra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Count win:UInt32 Numero di finalizzatori eseguiti.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

GCCreateConcurrentThread_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCCreateConcurrentThread_V1 11 È stato creato il thread di Garbage Collection in modalità simultanea

Nessun dato dell'evento.

GCTerminateConcurrentThread_V1 Event

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per la generazione dell'evento Level
GCKeyword (0x1) Informativo (4)
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Event ID evento Generato quando
GCTerminateConcurrentThread_V1 12 È stato terminato il thread di Garbage Collection in modalità simultanea.

Nessun dato dell'evento.

Vedi anche