Freigeben über


.NET-Runtime-Garbage Collection-Ereignisse

Die in diesem Artikel beschriebenen Ereignisse sammeln Informationen zur Garbage Collection. Sie helfen bei der Diagnose und beim Debuggen, einschließlich der Ermittlung, wie oft die Garbage Collection durchgeführt wurde, wie viel Arbeitsspeicher während der Garbage Collection freigegeben wurde usw. Weitere Informationen zur Verwendung dieser Ereignisse für Diagnosezwecke finden Sie unter Protokollierung und Ablaufverfolgung von .NET-Anwendungen.

GCStart_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 Wird ausgelöst, wenn
GCStart_V1 1 Eine Garbage Collection wurde gestartet.

Die folgende Tabelle zeigt die Ereignisdaten:

Flurname Datentyp Beschreibung
Count win:UInt32 Die nder Garbage Collection.
Depth win:UInt32 Die Generation, die gesammelt wird.
Reason 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.
Type 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 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
Count win:UInt32 Die nder Garbage Collection.
Depth win:UInt32 Die Generation, die gesammelt wurde.
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von 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 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
Address win:UInt64 Die Adresse des Segments.
Size win:UInt64 Die Größe des Segments.
Type 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 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
Address win:UInt64 Die Adresse des Segments.
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von 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.

Dieses Ereignis enthält 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.

Dieses Ereignis enthält keine Ereignisdaten.

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.

Dieses Ereignis enthält keine Ereignisdaten.

GCSuspendEEBegin_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
GCSuspendEEBegin_V1 9 Beginn des Anhaltens des Ausführungsmoduls für die Garbage Collection.
Flurname Datentyp Beschreibung
Count win:UInt32 Die nder Garbage Collection.
Reason win:UInt32 Grund für die Aussetzung von EE.

0x0: Anhalten für andere

0x1: Suspend for GC.

0x2: Anhalten für das Herunterfahren von AppDomain.

0x3: Für Codeabstand anhalten.

0x4: Anhalten für das Herunterfahren.

0x5: Für Debugger anhalten.

0x6: Suspend for GC Prep.

0x7: Aussetzen des Debuggers

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_V3 10 Jedes Mal, wenn ca. 100 KB zugewiesen werden.

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).
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.
Address win:Pointer Die Adresse des zuletzt zugewiesenen Objekts.
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von 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.

Dieses Ereignis enthält 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.

Dieses Ereignis enthält keine Ereignisdaten.

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.

Dieses Ereignis enthält 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
Count win:UInt32 Die Anzahl der Finalizer, die ausgeführt wurden.
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von CLR oder CoreCLR.

SetGCHandle-Ereignis

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:

Schlüsselwort zum Auslösen des Ereignisses Niveau
GCHandleKeyword (0x2) Informational (4)

Die folgende Tabelle zeigt die Ereignisinformationen:

Ereignis Ereignis-ID Wird ausgelöst, wenn
SetGCHandle 30 Es wurde ein GC Handle festgelegt.

Die folgende Tabelle zeigt die Ereignisdaten:

Flurname Datentyp Beschreibung
HandleID win:Pointer Die Adresse des zugewiesenen Handles.
ObjectID win:Pointer Die Adresse des Objekts, dessen Handle erstellt wurde.
Kind win:UInt32 Der Typ des GC-Handles, der festgelegt wurde.

0x0: WeakShort

0x1: WeakLong

0x2: Stark

0x3: Angeheftet

0x4: Variable

0x5: RefCounted

0x6: Abhängig

0x7: AsyncPinned

0x8: SizeRef
Generation win:UInt32 Die Generierung des Objekts, dessen Handle erstellt wurde.
AppDomainID win:UInt64 Die AppDomain-ID.
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von CoreCLR.

DestroyGCHandle-Ereignis

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:

Schlüsselwort zum Auslösen des Ereignisses Niveau
GCHandleKeyword (0x2) Informational (4)

Die folgende Tabelle zeigt die Ereignisinformationen:

Ereignis Ereignis-ID Wird ausgelöst, wenn
DestroyGCHandle 31 Ein GC Handle wird zerstört.

Die folgende Tabelle zeigt die Ereignisdaten:

Flurname Datentyp Beschreibung
HandleID win:Pointer Die Adresse des zerstörten Handles.
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von CoreCLR.

PinObjectAtGCTime-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
PinObjectAtGCTime 33 Ein Objekt wurde während einer GC angeheftet.

Die folgende Tabelle zeigt die Ereignisdaten:

Flurname Datentyp Beschreibung
HandleID win:Pointer Die Adresse des Handles.
ObjectID win:Pointer Die Adresse des angehefteten Objekts.
ObjectSize win:UInt64 Die Größe des angehefteten Objekts.
TypeName win:UnicodeString Der Name des Typs des angehefteten Objekts.
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von CoreCLR.

GCTriggered-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
GCTriggered 35 Eine GC wurde ausgelöst.

Die folgende Tabelle zeigt die Ereignisdaten:

Flurname Datentyp Beschreibung
Reason win:UInt32 Der Grund, warum eine GC ausgelöst wurde.

0x0: AllocSmall

0x1: Induziert

0x2: LowMemory

0x3: Leer

0x4: AllocLarge

0x5: OutOfSpaceSmallObjectHeap

0x6: OutOfSpaceLargeObjectHeap

0x7:InducedNoForce

0x8: Stress

0x9: InducedLowMemory
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von CoreCLR.

IncreaseMemoryPressure-Ereignis

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:

Schlüsselwort zum Auslösen des Ereignisses Niveau
GCKeyword (0x1) Informationen (4)

Die folgende Tabelle zeigt die Ereignisinformationen:

Ereignis Ereignis-ID Wird ausgelöst, wenn
IncreaseMemoryPressure 200 Der Arbeitsspeicherdruck wurde erhöht.

Die folgende Tabelle zeigt die Ereignisdaten:

Flurname Datentyp Beschreibung
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von CoreCLR.

DecreaseMemoryPressure-Ereignis

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:

Schlüsselwort zum Auslösen des Ereignisses Niveau
GCKeyword (0x1) Informationen (4)

Die folgende Tabelle zeigt die Ereignisinformationen:

Ereignis Ereignis-ID Wird ausgelöst, wenn
DecreaseMemoryPressure 201 Der Arbeitsspeicherdruck wurde verringert.

Die folgende Tabelle zeigt die Ereignisdaten:

Flurname Datentyp Beschreibung
BytesFreed win:UInt32 Bytes werden freigegeben.
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von CoreCLR.

GCMarkWithType-Ereignis

Die folgende Tabelle zeigt das Schlüsselwort und die Ebene:

Schlüsselwort zum Auslösen des Ereignisses Niveau
GCKeyword (0x1) Informationen (4)

Die folgende Tabelle zeigt die Ereignisinformationen:

Ereignis Ereignis-ID Wird ausgelöst, wenn
GCMarkWithType 202 Während der GC-Markierungsphase wurde ein GC-Stamm markiert.

Die folgende Tabelle zeigt die Ereignisdaten:

Flurname Datentyp Beschreibung
HeapNum win:UInt32 Die Heapnummer.
ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von CoreCLR.
Type win:UInt32 Der GC-Stammtyp.

0x0: Stapel

0x1: Finalizer

0x2: Handle

0x3: Älter

0x4: SizeRef

0x5: Überlauf

Bytes win:UInt64 Die Anzahl der markierten Bytes.

GCJoin_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
GCJoin_V2 203 Ein GC-Thread ist verknüpft.

Die folgende Tabelle zeigt die Ereignisdaten:

Flurname Datentyp Beschreibung
Heap win:UInt32 Die Heapnummer
JoinTime win:UInt32 Gibt an, ob dieses Ereignis zu Beginn einer Teilnahme oder eines Endes einer Teilnahme ausgelöst wird (0x0 für den Beginn der Teilnahme, 0x1 für das Ende der Teilnahme)
JoinType win:UInt32 Der Verknüpfungstyp.

0x0: Letzter Beitritt

0x1: Teilnehmen

0x2: Neustart

0x3: First Reverse Join

0x4: Reverse Join

ClrInstanceID win:UInt16 Eindeutige ID für die Instanz von CoreCLR.