Condividi tramite


Eventi di Garbage Collection di runtime .NET

Gli eventi descritti in questo articolo 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. Per altre informazioni su come usare questi eventi a scopo di diagnostica, vedere registrazione e traccia delle applicazioni .NET.

evento GCStart_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 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
Count win:UInt32 ngarbage collection.
Depth win:UInt32 Generazione che viene raccolta.
Reason 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.
Type 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 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
Count win:UInt32 ngarbage collection.
Depth win:UInt32 Generazione raccolta.
ClrInstanceID win:UInt16 ID univoco per l'istanza di 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 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
Address win:UInt64 Indirizzo del segmento.
Size win:UInt64 Dimensioni del segmento.
Type 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 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.

evento GCFreeSegment_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
GCFreeSegment_V1 6 È stato rilasciato un segmento di Garbage Collection.

La tabella seguente illustra 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 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.

Questo evento non dispone di dati dell'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.

Questo evento non dispone di dati dell'evento.

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.

Questo evento non dispone di dati dell'evento.

evento GCSuspendEEBegin_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
GCSuspendEEBegin_V1 9 Avvio della sospensione del motore di esecuzione per Garbage Collection.
Nome campo Tipo di dati Descrizione
Count win:UInt32 ngarbage collection.
Reason win:UInt32 Motivo della sospensione EE.

0x0: Sospensione per altri

0x1: sospensione per GC.

0x2: sospensione per l'arresto di AppDomain.

0x3: sospensione per l'inclinazione del codice.

0x4: sospensione per l'arresto.

0x5: sospensione per il debugger.

0x6: sospensione per la preparazione GC.

0x7: Sospensione per lo sweep del debugger

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_V3 10 Ogni volta che vengono allocati circa 100 KB.

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).
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.
Address win:Pointer Indirizzo dell'ultimo oggetto allocato.
ClrInstanceID win:UInt16 ID univoco per l'istanza di 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.

Questo evento non dispone di dati dell'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.

Questo evento non dispone di dati dell'evento.

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.

Questo evento non dispone di dati dell'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
Count win:UInt32 Numero di finalizzatori eseguiti.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CLR o CoreCLR.

SetGCHandle, evento

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCHandleKeyword (0x2) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
SetGCHandle 30 È stato impostato un handle GC.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
HandleID win:Pointer Indirizzo dell'handle allocato.
ObjectID win:Pointer Indirizzo dell'oggetto il cui handle è stato creato.
Kind win:UInt32 Tipo di handle GC impostato.

0x0: WeakShort

0x1: WeakLong

0x2: forte

0x3: aggiunta

0x4: Variabile

0x5: RefCounted

0x6: dipendente

0x7: AsyncPinned

0x8: SizedRef
Generation win:UInt32 Generazione dell'oggetto il cui handle è stato creato.
AppDomainID win:UInt64 ID AppDomain.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CoreCLR.

DestroyGCHandle, evento

La tabella seguente illustra la parola chiave e il livello:

Parola chiave per generare l'evento Livello
GCHandleKeyword (0x2) Informativo (4)

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
DestroyGCHandle 31 Un handle GC viene eliminato definitivamente.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
HandleID win:Pointer Indirizzo dell'handle eliminato.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CoreCLR.

PinObjectAtGCTime, evento

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
PinObjectAtGCTime 33 Un oggetto è stato aggiunto durante un GC.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
HandleID win:Pointer Indirizzo dell'handle.
ObjectID win:Pointer Indirizzo dell'oggetto aggiunto.
ObjectSize win:UInt64 Dimensione dell'oggetto aggiunto.
TypeName win:UnicodeString Nome del tipo dell'oggetto aggiunto.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CoreCLR.

Evento GCTriggered

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
GCTriggered 35 È stato attivato un GC.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Reason win:UInt32 Motivo per cui è stato attivato un GC.

0x0: AllocSmall

0x1: indotto

0x2: LowMemory

0x3: vuoto

0x4: AllocLarge

0x5: OutOfSpaceSmallObjectHeap

0x6: OutOfSpaceLargeObjectHeap

0x7:InducedNoForce

0x8: Stress

0x9: InducedLowMemory
ClrInstanceID win:UInt16 ID univoco per l'istanza di CoreCLR.

Evento IncreaseMemoryPressure

La tabella seguente illustra la parola chiave e il livello:

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

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
IncreaseMemoryPressure 200 La pressione della memoria è stata aumentata.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
ClrInstanceID win:UInt16 ID univoco per l'istanza di CoreCLR.

Evento DecreaseMemoryPressure

La tabella seguente illustra la parola chiave e il livello:

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

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
DecreaseMemoryPressure 201 La pressione della memoria è stata ridotta.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
BytesFreed win:UInt32 Byte liberati.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CoreCLR.

Evento GCMarkWithType

La tabella seguente illustra la parola chiave e il livello:

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

La tabella seguente mostra le informazioni sull'evento:

Evento ID evento Generato quando
GCMarkWithType 202 Una radice GC è stata contrassegnata durante la fase del contrassegno GC.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
HeapNum win:UInt32 Numero dell'heap.
ClrInstanceID win:UInt16 ID univoco per l'istanza di CoreCLR.
Type win:UInt32 Tipo radice GC.

0x0: Stack

0x1: finalizzatore

0x2: handle

0x3: precedente

0x4: SizedRef

0x5: Overflow

Bytes win:UInt64 Numero di byte contrassegnati.

evento GCJoin_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
GCJoin_V2 203 Un thread GC unito.

La tabella seguente illustra i dati dell'evento:

Nome campo Tipo di dati Descrizione
Heap win:UInt32 Numero dell'heap
JoinTime win:UInt32 Indica se questo evento viene generato all'inizio di un join o alla fine di un join (0x0 per l'inizio del join, 0x1 per la fine del join)
JoinType win:UInt32 Tipo di join.

0x0: Ultimo join

0x1: Join

0x2: riavvio

0x3: Primo join inverso

0x4: reverse join

ClrInstanceID win:UInt16 ID univoco per l'istanza di CoreCLR.