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