ETW-Ereignisse der Garbage Collection
Diese Ereignisse sammeln Informationen zur Garbage Collection. Sie helfen bei der Diagnose und beim Debuggen, einschließlich der Ermittlung, wie oft die Garbage Collection ausgeführt wurde, wie viel Arbeitsspeicher während der Garbage Collection freigegeben wurde usw.
Diese Kategorie besteht aus den folgenden Ereignissen:
- GCStart_V1
- GCEnd_V1-Ereignis
- GCHeapStats_V1
- GCHeapStats_V2-Ereignis-
- GCCreateSegment_V1-Ereignis-
- GCFreeSegment_V1 Ereignis-
- GCRestartEEBegin_V1 Ereignis-
- GCRestartEEEnd_V1-Ereignis-
- GCSuspendEE_V1-Ereignis-
- GCSuspendEEEnd_V1-Ereignis-
- GCAllocationTick_V2 Ereignis-
- GCAllocationTick_V3-Ereignis-
- GCFinalizersBegin_V1 Ereignis-
- GCFinalizersEnd_V1 Ereignis-
- GCCreateConcurrentThread_V1-Ereignis-
- GCTerminateConcurrentThread_V1-Ereignis-
GCStart_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene. Weitere Informationen finden Sie unter CLR ETW Keywords and Levels.
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCStart_V1 |
1 | Eine Garbage Collection wurde gestartet. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
Zählen | win:UInt32 | Die nder Garbage Collection. |
Tiefe | win:UInt32 | Die Generation, die gesammelt wird. |
Grund | win:UInt32 | Warum die Garbage Collection ausgelöst wurde: 0x0 – Zuweisung kleiner Objekte 0x1 - Induziert. 0x2 – Geringer Arbeitsspeicher. 0x3 - Leer. 0x4 – Heapzuweisung für große Objekte. 0x5 - Leerraum (für kleine Objekthaps). 0x6 – Leerraum (für große Objekthäufige Heap). 0x7 - Induziert, aber nicht als Blockierung erzwungen. 0x8 - Stresstests. 0x9 - Der Finalizerthread beobachtet, dass der Prozess in geringem Arbeitsspeicher liegt und eine GC induziert. 0x10 - Benutzercode induzierte GC und fordert sie auf, eine komprimierte GC zu sein. |
Art | win:UInt32 | 0x0 : Das Blockieren der Garbage Collection ist außerhalb der Garbage Collection im Hintergrund aufgetreten. 0x1 – Garbage Collection im Hintergrund. 0x2 – Das Blockieren der Garbage Collection ist während der Garbage Collection im Hintergrund aufgetreten. |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
GCEnd_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCEnd_V1 |
2 | Die Garbage Collection wurde beendet. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
Zählen | win:UInt32 | Die nder Garbage Collection. |
Tiefe | win:UInt32 | Die Generation, die gesammelt wurde. |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
GCHeapStats_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Beschreibung |
---|---|---|
GCHeapStats_V1 |
4 | Zeigt die Heap-Statistiken am Ende jeder Garbage Collection an. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
GenerationSize0 | win:UInt64 | Die Größe des Speichers der Generation 0 in Bytes. |
TotalPromotedSize0 | win:UInt64 | Die Anzahl der Bytes, die von Generation 0 auf Generation 1 heraufgestuft werden. |
GenerationSize1 | win:UInt64 | Die Größe des Speichers der Generation 1 in Bytes. |
TotalPromotedSize1 | win:UInt64 | Die Anzahl der Bytes, die von generation 1 auf Generation 2 heraufgestuft werden. |
GenerationSize2 | win:UInt64 | Die Größe des Speichers der Generation 2 in Bytes. |
TotalPromotedSize2 | win:UInt64 | Die Anzahl der Bytes, die nach der letzten Sammlung in Generation 2 überlebt haben. |
GenerationSize3 | win:UInt64 | Die Größe des Heaps für große Objekte in Byte. |
TotalPromotedSize3 | win:UInt64 | Die Anzahl der Bytes, die im Heap des großen Objekts nach der letzten Auflistung überlebt haben. |
FinalizationPromotedSize | win:UInt64 | Die Gesamtgröße der Objekte, die für die Fertigstellung bereit sind, in Byte. |
FinalizationPromotedCount | win:UInt64 | Die Anzahl der Objekte, die für die Fertigstellung bereit sind. |
PinnedObjectCount | win:UInt32 | Die Anzahl der angehefteten (nichtovablen) Objekte. |
SinkBlockCount | win:UInt32 | Die Anzahl der verwendeten Synchronisierungsblöcke. |
GCHandleCount | win:UInt32 | Die Anzahl der verwendeten Garbage Collection-Handles. |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
GCHeapStats_V2-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Beschreibung |
---|---|---|
GCHeapStats_V2 |
4 | Zeigt die Heap-Statistiken am Ende jeder Garbage Collection an. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
GenerationSize0 | win:UInt64 | Die Größe des Speichers der Generation 0 in Bytes. |
TotalPromotedSize0 | win:UInt64 | Die Anzahl der Bytes, die von Generation 0 auf Generation 1 heraufgestuft werden. |
GenerationSize1 | win:UInt64 | Die Größe des Speichers der Generation 1 in Bytes. |
TotalPromotedSize1 | win:UInt64 | Die Anzahl der Bytes, die von generation 1 auf Generation 2 heraufgestuft werden. |
GenerationSize2 | win:UInt64 | Die Größe des Speichers der Generation 2 in Bytes. |
TotalPromotedSize2 | win:UInt64 | Die Anzahl der Bytes, die nach der letzten Sammlung in Generation 2 überlebt haben. |
GenerationSize3 | win:UInt64 | Die Größe des Heaps für große Objekte in Byte. |
TotalPromotedSize3 | win:UInt64 | Die Anzahl der Bytes, die im Heap des großen Objekts nach der letzten Auflistung überlebt haben. |
FinalizationPromotedSize | win:UInt64 | Die Gesamtgröße der Objekte, die für die Fertigstellung bereit sind, in Byte. |
FinalizationPromotedCount | win:UInt64 | Die Anzahl der Objekte, die für die Fertigstellung bereit sind. |
PinnedObjectCount | win:UInt32 | Die Anzahl der angehefteten (nichtovablen) Objekte. |
SinkBlockCount | win:UInt32 | Die Anzahl der verwendeten Synchronisierungsblöcke. |
GCHandleCount | win:UInt32 | Die Anzahl der verwendeten Garbage Collection-Handles. |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
GenerationSize4 | win:UInt64 | Die Größe des angehefteten Objekt-Heaps in Bytes. |
TotalPromotedSize4 | win:UInt64 | Die Anzahl der Bytes, die im Heap des angehefteten Objekts nach der letzten Auflistung überlebt haben. |
GCCreateSegment_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCCreateSegment_V1 |
5 | Es wurde ein neues Garbage Collection-Segment erstellt. Wenn die Ablaufverfolgung für einen bereits ausgeführten Prozess aktiviert ist, wird dieses Ereignis für jedes vorhandene Segment ausgelöst. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
Adresse | win:UInt64 | Die Adresse des Segments. |
Größe | win:UInt64 | Die Größe des Segments. |
Art | win:UInt32 | 0x0 – Heap für kleine Objekte. 0x1 – Heap für große Objekte. 0x2 – Schreibgeschützter Heap. |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
Beachten Sie, dass die größe der vom Garbage Collector zugewiesenen Segmente implementierungsspezifisch ist und jederzeit geändert werden kann, einschließlich in regelmäßigen Updates. Ihre App sollte niemals annahmen, ob sie von einer bestimmten Segmentgröße abhängig sind, noch sollten Sie versuchen, die für Segmentzuordnungen verfügbare Speichermenge zu konfigurieren.
GCFreeSegment_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCFreeSegment_V1 |
6 | Ein Garbage Collection-Segment wurde freigegeben. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
Adresse | win:UInt64 | Die Adresse des Segments. |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
GCRestartEEBegin_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCRestartEEBegin_V1 |
7 | Die Wiederaufnahme der Unterbrechung der Laufzeit für gemeinsame Sprachen hat begonnen. |
Keine Ereignisdaten.
GCRestartEEEnd_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCRestartEEEnd_V1 |
3 | Die Fortsetzung der Unterbrechung der Gemeinsamen Sprachlaufzeit wurde beendet. |
Keine Ereignisdaten.
GCSuspendEE_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCSuspendEE_V1 |
9 | Beginn des Anhaltens des Ausführungsmoduls für die Garbage Collection. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
Grund | win:UInt16 | 0x0 - Andere. 0x1 – Garbage Collection. 0x2 – Herunterfahren der Anwendungsdomäne. 0x3 – Codeabstand. 0x4 – Herunterfahren. 0x5 – Debugger. 0x6 – Vorbereitung für die Garbage Collection. |
Zählen | win:UInt32 | Die GC-Anzahl zur Zeit. In der Regel würden Sie ein nachfolgendes GC Start-Ereignis danach sehen, und die Anzahl wäre diese Anzahl + 1, da wir den GC-Index während einer Garbage Collection erhöhen. |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
GCSuspendEEEnd_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCSuspendEEEnd_V1 |
8 | Ende der Aussetzung des Ausführungsmoduls für die Garbage Collection. |
Keine Ereignisdaten.
GCAllocationTick_V2-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Ausführlich (5) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCAllocationTick_V2 |
10 | Jedes Mal, wenn ca. 100 KB pro Objekt heap zugeordnet werden. Das heißt, SOH, LOH und POH sammeln ihre zugeordneten Bytes separat an. In Server GC erfolgt dies pro Heap. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
AllocationAmount | win:UInt32 | Die Zuordnungsgröße in Byte. Dieser Wert ist für Zuordnungen genau, die kleiner als die Länge eines ULONG (4.294.967.295 Bytes) sind. Wenn die Zuordnung größer ist, enthält dieses Feld einen abgeschnittenen Wert. Verwenden Sie AllocationAmount64 für sehr große Zuordnungen. |
AllocationKind | win:UInt32 | 0x0 - Kleine Objektzuordnung (Zuordnung befindet sich im Heap für kleine Objekte). 0x1 - Zuordnung großer Objekte (Zuordnung befindet sich im Heap für große Objekte). 0x2 - Angeheftete Objektzuordnung (Zuordnung ist in angeheftetem Objekthap). |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
AllocationAmount64 | win:UInt64 | Die Zuordnungsgröße in Byte. Dieser Wert ist für sehr große Zuordnungen genau. |
TypeId | win:Pointer | Die Adresse der MethodTable. Wenn während dieses Ereignisses mehrere Objekttypen zugeordnet wurden, ist dies die Adresse der MethodTable, die dem letzten zugeordneten Objekt entspricht (das Objekt, das dazu führte, dass der Schwellenwert von 100 KB überschritten wurde). |
TypeName | win:UnicodeString | Der Name des typs, der zugewiesen wurde. Wenn während dieses Ereignisses mehrere Objekttypen zugeordnet wurden, ist dies der Typ des zuletzt zugewiesenen Objekts (das Objekt, das dazu führte, dass der Schwellenwert von 100 KB überschritten wurde). |
HeapIndex | win:UInt32 | Der Heap, in dem das Objekt zugewiesen wurde. Dieser Wert ist 0 (null), wenn er mit der Garbage Collection der Arbeitsstation ausgeführt wird. |
GCAllocationTick_V3-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Ausführlich (5) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCAllocationTick_V2 |
10 | Jedes Mal, wenn ca. 100 KB pro Objekt heap zugeordnet werden. Das heißt, SOH, LOH und POH sammeln ihre zugeordneten Bytes separat an. In Server GC erfolgt dies pro Heap. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
AllocationAmount | win:UInt32 | Die Zuordnungsgröße in Byte. Dieser Wert ist für Zuordnungen genau, die kleiner als die Länge eines ULONG (4.294.967.295 Bytes) sind. Wenn die Zuordnung größer ist, enthält dieses Feld einen abgeschnittenen Wert. Verwenden Sie AllocationAmount64 für sehr große Zuordnungen. |
AllocationKind | win:UInt32 | 0x0 - Kleine Objektzuordnung (Zuordnung befindet sich im Heap für kleine Objekte). 0x1 - Zuordnung großer Objekte (Zuordnung befindet sich im Heap für große Objekte). 0x2 - Angeheftete Objektzuordnung (Zuordnung ist in angeheftetem Objekthap). |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
AllocationAmount64 | win:UInt64 | Die Zuordnungsgröße in Byte. Dieser Wert ist für sehr große Zuordnungen genau. |
TypeId | win:Pointer | Die Adresse der MethodTable. Wenn während dieses Ereignisses mehrere Objekttypen zugeordnet wurden, ist dies die Adresse der MethodTable, die dem letzten zugeordneten Objekt entspricht (das Objekt, das dazu führte, dass der Schwellenwert von 100 KB überschritten wurde). |
TypeName | win:UnicodeString | Der Name des typs, der zugewiesen wurde. Wenn während dieses Ereignisses mehrere Objekttypen zugeordnet wurden, ist dies der Typ des zuletzt zugewiesenen Objekts (das Objekt, das dazu führte, dass der Schwellenwert von 100 KB überschritten wurde). |
HeapIndex | win:UInt32 | Der Heap, in dem das Objekt zugewiesen wurde. Dieser Wert ist 0 (null), wenn er mit der Garbage Collection der Arbeitsstation ausgeführt wird. |
Adresse | win:Pointer | Die Adresse des zuletzt zugewiesenen Objekts. |
GCFinalizersBegin_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCFinalizersBegin_V1 |
14 | Der Beginn der Ausführung von Finalizern. |
Keine Ereignisdaten.
GCFinalizersEnd_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCFinalizersEnd_V1 |
13 | Das Ende der Ausführung von Finalizern. |
Die folgende Tabelle zeigt die Ereignisdaten:
Flurname | Datentyp | Beschreibung |
---|---|---|
Zählen | win:UInt32 | Die Anzahl der Finalizer, die ausgeführt wurden. |
ClrInstanceID | win:UInt16 | Eindeutige ID für die Instanz von CLR oder CoreCLR. |
GCCreateConcurrentThread_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
ThreadingKeyword (0x10000) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCCreateConcurrentThread_V1 |
11 | Gleichzeitiger Garbage Collection-Thread wurde erstellt. |
Keine Ereignisdaten.
GCTerminateConcurrentThread_V1-Ereignis
Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:
Schlüsselwort zum Auslösen des Ereignisses | Niveau |
---|---|
GCKeyword (0x1) |
Informational (4) |
ThreadingKeyword (0x10000) |
Informational (4) |
Die folgende Tabelle zeigt die Ereignisinformationen:
Ereignis | Ereignis-ID | Wird ausgelöst, wenn |
---|---|---|
GCTerminateConcurrentThread_V1 |
12 | Gleichzeitiger Garbage Collection-Thread wurde beendet. |
Keine Ereignisdaten.