Condividi tramite


Eventi ETW di Garbage Collection

Questi eventi raccolgono informazioni relative a Garbage Collection. Sono utili per la diagnostica e il debug, tra cui la determinazione del numero di volte in cui è stata eseguita l'operazione di Garbage Collection, la quantità di memoria liberata durante la Garbage Collection e così via.

Questa categoria è costituita dagli eventi seguenti:

evento GCStart_V1

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

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
GCStart_V1 1 È stata avviata un'operazione di Garbage Collection.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Contare win:UInt32 ngarbage collection.
Profondità win:UInt32 Generazione che viene raccolta.
Ragione win:UInt32 Motivo per cui è stata attivata la Procedura di Garbage Collection:

0x0 : allocazione dell'heap di oggetti di piccole dimensioni.

0x1 - Indotto.

0x2 - Memoria insufficiente.

0x3 - Vuoto.

0x4: allocazione dell'heap di oggetti di grandi dimensioni.

0x5 - Spazio insufficiente (per heap di oggetti di piccole dimensioni).

0x6 - Spazio insufficiente (per l'heap di oggetti di grandi dimensioni).

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.
Digitare win:UInt32 0x0: il blocco della Garbage Collection si è verificato all'esterno di Garbage Collection in background.

0x1 - Garbage Collection in background.

0x2: si è verificato un blocco della Garbage Collection durante la Garbage Collection in background.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

evento GCEnd_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
GCEnd_V1 2 Operazione di Garbage Collection terminata.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Contare win:UInt32 ngarbage collection.
Profondità win:UInt32 Generazione raccolta.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

evento GCHeapStats_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

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

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
GenerationSize0 win:UInt64 Dimensioni, in byte, della memoria di generazione 0.
TotalPromotedSize0 win:UInt64 Numero di byte promossi dalla generazione 0 alla generazione 1.
GenerationSize1 win:UInt64 Dimensioni, in byte, della memoria di generazione 1.
TotalPromotedSize1 win:UInt64 Numero di byte alzati di livello dalla generazione 1 alla generazione 2.
GenerationSize2 win:UInt64 Dimensioni, in byte, di memoria di seconda generazione.
TotalPromotedSize2 win:UInt64 Numero di byte sopravvissuti alla generazione 2 dopo l'ultima raccolta.
GenerationSize3 win:UInt64 Dimensione, in byte, dell'heap di oggetti di grandi dimensioni.
TotalPromotedSize3 win:UInt64 Numero di byte sopravvissuti nell'heap di oggetti di grandi dimensioni 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 aggiunti (non rimovibili).
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 generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

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

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
GenerationSize0 win:UInt64 Dimensioni, in byte, della memoria di generazione 0.
TotalPromotedSize0 win:UInt64 Numero di byte promossi dalla generazione 0 alla generazione 1.
GenerationSize1 win:UInt64 Dimensioni, in byte, della memoria di generazione 1.
TotalPromotedSize1 win:UInt64 Numero di byte alzati di livello dalla generazione 1 alla generazione 2.
GenerationSize2 win:UInt64 Dimensioni, in byte, di memoria di seconda generazione.
TotalPromotedSize2 win:UInt64 Numero di byte sopravvissuti alla generazione 2 dopo l'ultima raccolta.
GenerationSize3 win:UInt64 Dimensione, in byte, dell'heap di oggetti di grandi dimensioni.
TotalPromotedSize3 win:UInt64 Numero di byte sopravvissuti nell'heap di oggetti di grandi dimensioni 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 aggiunti (non rimovibili).
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.

evento GCCreateSegment_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

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

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Indirizzo win:UInt64 Indirizzo del segmento.
Grandezza win:UInt64 Dimensioni del segmento.
Digitare win:UInt32 0x0 - Heap di oggetti di piccole dimensioni.

0x1 : heap oggetti di grandi dimensioni.

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

Si noti che le dimensioni dei segmenti allocati dal Garbage Collector sono specifiche dell'implementazione e sono soggette a modifiche in qualsiasi momento, inclusi gli aggiornamenti periodici. L'app non deve mai fare ipotesi su o dipendere da una determinata dimensione del segmento, né deve tentare di configurare la quantità di memoria disponibile per le allocazioni dei segmenti.

GCFreeSegment_V1, evento

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

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

La tabella seguente illustra i dati dell'evento:

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

evento GCRestartEEBegin_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
GCRestartEEBegin_V1 7 È iniziata la ripresa dalla sospensione di Common Language Runtime.

Nessun dato evento.

evento GCRestartEEEnd_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
GCRestartEEEnd_V1 3 La ripresa dalla sospensione di Common Language Runtime è terminata.

Nessun dato evento.

evento GCSuspendEE_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
GCSuspendEE_V1 9 Avvio della sospensione del motore di esecuzione per Garbage Collection.

La tabella seguente illustra i dati dell'evento:

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

0x1 - Garbage Collection.

0x2 - Arresto del dominio applicazione.

0x3 - Presentazione del codice.

0x4 - Arresto.

0x5 - Debugger.

0x6 : preparazione per l'operazione di Garbage Collection.
Contare win:UInt32 Conteggio GC al momento. In genere, verrà visualizzato un evento GC Start successivo dopo questo evento e il conteggio sarà questo Conteggio + 1 man mano che si aumenta l'indice GC durante un'operazione di Garbage Collection.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

evento GCSuspendEEEnd_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

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

Nessun dato evento.

evento GCAllocationTick_V2

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Dettagliato (5)

La tabella seguente mostra le informazioni sull'evento:

Evento 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 illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
AllocationAmount win:UInt32 Dimensioni di allocazione, in byte. Questo valore è accurato per le allocazioni inferiori alla lunghezza di una ULONG (4.294.967.295 byte). Se l'allocazione è maggiore, questo campo contiene un valore troncato. Usare AllocationAmount64 per allocazioni molto grandi.
AllocationKind win:UInt32 0x0 - Allocazione di oggetti di piccole dimensioni (allocazione in heap di oggetti di piccole dimensioni).
0x1 - Allocazione di oggetti di grandi dimensioni (allocazione in heap oggetti di grandi dimensioni).
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 Dimensioni di allocazione, in byte. Questo valore è accurato per allocazioni molto grandi.
TypeId win:Pointer Indirizzo dell'oggetto MethodTable. Quando durante questo evento sono stati allocati diversi tipi di oggetti, si tratta dell'indirizzo della Classe MethodTable corrispondente all'ultimo oggetto allocato (l'oggetto che ha causato il superamento della soglia di 100 KB).
TypeName win:UnicodeString Nome del tipo allocato. Quando sono presenti diversi tipi di oggetti allocati durante questo evento, si tratta del tipo dell'ultimo oggetto allocato (l'oggetto che ha causato il superamento della soglia di 100 KB).
HeapIndex win:UInt32 Heap in cui è stato allocato l'oggetto. Questo valore è 0 (zero) durante l'esecuzione con Garbage Collection della workstation.

evento GCAllocationTick_V3

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Dettagliato (5)

La tabella seguente mostra le informazioni sull'evento:

Evento 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 illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
AllocationAmount win:UInt32 Dimensioni di allocazione, in byte. Questo valore è accurato per le allocazioni inferiori alla lunghezza di una ULONG (4.294.967.295 byte). Se l'allocazione è maggiore, questo campo contiene un valore troncato. Usare AllocationAmount64 per allocazioni molto grandi.
AllocationKind win:UInt32 0x0 - Allocazione di oggetti di piccole dimensioni (allocazione in heap di oggetti di piccole dimensioni).
0x1 - Allocazione di oggetti di grandi dimensioni (allocazione in heap oggetti di grandi dimensioni).
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 Dimensioni di allocazione, in byte. Questo valore è accurato per allocazioni molto grandi.
TypeId win:Pointer Indirizzo dell'oggetto MethodTable. Quando durante questo evento sono stati allocati diversi tipi di oggetti, si tratta dell'indirizzo della Classe MethodTable corrispondente all'ultimo oggetto allocato (l'oggetto che ha causato il superamento della soglia di 100 KB).
TypeName win:UnicodeString Nome del tipo allocato. Quando sono presenti diversi tipi di oggetti allocati durante questo evento, si tratta del tipo dell'ultimo oggetto allocato (l'oggetto che ha causato il superamento della soglia di 100 KB).
HeapIndex win:UInt32 Heap in cui è stato allocato l'oggetto. Questo valore è 0 (zero) durante l'esecuzione con Garbage Collection della workstation.
Indirizzo win:Pointer Indirizzo dell'ultimo oggetto allocato.

evento GCFinalizersBegin_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

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

Nessun dato evento.

evento GCFinalizersEnd_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

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

La tabella seguente illustra i dati dell'evento:

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

evento GCCreateConcurrentThread_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
GCCreateConcurrentThread_V1 11 È stato creato un thread di Garbage Collection simultaneo.

Nessun dato evento.

evento GCTerminateConcurrentThread_V1

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCKeyword (0x1) Informativo (4)
ThreadingKeyword (0x10000) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
GCTerminateConcurrentThread_V1 12 Thread di Garbage Collection simultaneo terminato.

Nessun dato evento.

Vedere anche