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