Compartir a través de


Eventos de recolección de elementos no utilizados del entorno de ejecución de .NET

Los eventos descritos en este artículo recopilan información perteneciente a la recolección de elementos no utilizados. Facilitan el diagnóstico y la depuración, incluida la determinación de cuántas veces se ha realizado la recolección de elementos no utilizados, cuánta memoria se ha liberado durante la recolección de elementos no utilizados, etc. Para obtener más información sobre cómo usar estos eventos con fines de diagnóstico, vea Registro y seguimiento de aplicaciones .NET.

Evento GCStart_V2

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCStart_V1 1 Se ha iniciado una recolección de elementos no utilizados.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
Count win:UInt32 Recolección de elementos no utilizados número n.
Depth win:UInt32 Generación que se está recopilando.
Reason win:UInt32 ¿Por qué se desencadenó la recolección de elementos no utilizados:

0x0: asignación del montón de objetos pequeños.

0x1: provocado.

0x2: memoria insuficiente.

0x3: vacío.

0x4: asignación del montón de objetos grandes.

0x5: espacio insuficiente (para el montón de objetos pequeños).

0x6: espacio insuficiente (para el montón de objetos grandes).

0x7: provocado pero no forzado como bloqueo.
Type win:UInt32 0x0: el bloqueo de la recolección de elementos no utilizados ha ocurrido fuera de la recolección de elementos no utilizados en segundo plano.

0x1: recolección de elementos no utilizados en segundo plano.

0x2: el bloqueo de la recolección de elementos no utilizados ha ocurrido durante la recolección de elementos no utilizados en segundo plano.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento GCEnd_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCEnd_V1 2 La recolección de elementos no utilizados ha finalizado.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
Count win:UInt32 Recolección de elementos no utilizados número n.
Depth win:UInt32 Generación que se recopiló.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento GCHeapStats_V2

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Descripción
GCHeapStats_V2 4 Muestra las estadísticas del montón al final de cada recolección de elementos no utilizados.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
GenerationSize0 win:UInt64 Tamaño, en bytes, de la memoria de la generación 0.
TotalPromotedSize0 win:UInt64 Número de bytes que se promueven de generación 0 a generación 1.
GenerationSize1 win:UInt64 Tamaño, en bytes, de la memoria de la generación 1.
TotalPromotedSize1 win:UInt64 Número de bytes que se promueven de generación 1 a generación 2.
GenerationSize2 win:UInt64 Tamaño, en bytes, de la memoria de la generación 2.
TotalPromotedSize2 win:UInt64 Número de bytes que sobrevivieron en la generación 2 después de la última recolección.
GenerationSize3 win:UInt64 Tamaño, en bytes, del montón de objetos grandes.
TotalPromotedSize3 win:UInt64 Número de bytes que sobrevivieron en el montón de objetos grandes después de la última recolección.
FinalizationPromotedSize win:UInt64 Tamaño total, en bytes, de los objetos que están listos para la finalización.
FinalizationPromotedCount win:UInt64 Número de objetos que están listos para la finalización.
PinnedObjectCount win:UInt32 Número de objetos anclados (inamovibles).
SinkBlockCount win:UInt32 Número de bloques de sincronización en uso.
GCHandleCount win:UInt32 Número de controles de recolección de elementos no utilizados en uso.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.
GenerationSize4 win:UInt64 Tamaño, en bytes, del montón de objetos anclados.
TotalPromotedSize4 win:UInt64 Número de bytes que han sobrevivido en el montón de objetos anclados después de la última recolección.

Evento GCCreateSegment_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCCreateSegment_V1 5 Se ha creado un nuevo segmento de recopilación de elementos no utilizados. Además, si se habilita el seguimiento en un proceso que ya se está ejecutando, se genera este evento para cada segmento existente.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
Address win:UInt64 Dirección del segmento.
Size win:UInt64 Tamaño del segmento.
Type win:UInt32 0x0: montón de objetos pequeños.

0x1: montón de objetos grandes.

0x2: montón de solo lectura.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Tenga en cuenta que el tamaño de los segmentos asignados por el recolector de elementos no utilizados es específico de la implementación y está sujeto a cambios en cualquier momento, incluso en las actualizaciones periódicas. La aplicación nunca debe realizar suposiciones sobre el tamaño de un sector determinado ni depender de él, y tampoco debe intentar configurar la cantidad de memoria disponible para las asignaciones de segmentos.

Evento GCFreeSegment_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCFreeSegment_V1 6 Se ha liberado un segmento de recolección de elementos no utilizados.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
Address win:UInt64 Dirección del segmento.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento GCRestartEEBegin_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCRestartEEBegin_V1 7 Ha comenzado la reanudación de la suspensión de Common Language Runtime.

Este evento no tiene datos de evento.

Evento GCRestartEEEnd_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCRestartEEEnd_V1 3 Ha finalizado la reanudación de la suspensión de Common Language Runtime.

Este evento no tiene datos de evento.

Evento GCSuspendEE_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCSuspendEEEnd_V1 8 Final de la suspensión del motor de ejecución de la recolección de elementos no utilizados.

Este evento no tiene datos de evento.

Evento GCSuspendEEBegin_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCSuspendEEBegin_V1 9 Inicio de la suspensión del motor de ejecución de la recolección de elementos no utilizados.
Nombre del campo Tipo de datos Descripción
Count win:UInt32 Recolección de elementos no utilizados número n.
Reason win:UInt32 Motivo de la suspensión de EE.

0x0: suspensión para Otros.

0x1: suspensión para GC.

0x2: suspensión para el apagado de AppDomain.

0x3: suspensión para la eliminación de código nativo.

0x4: suspensión para el apagado.

0x5: suspensión para el depurador.

0x6: suspensión para la preparación de GC.

0x7: suspensión para el barrido del depurador.

Evento GCAllocationTick_V3

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Detallado (5)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCAllocationTick_V3 10 Cada vez se asignan aproximadamente 100 KB.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
AllocationAmount win:UInt32 Tamaño de la asignación, en bytes. Este valor es preciso para las asignaciones que son menores que la longitud de ULONG (4.294.967.295 bytes). Si la asignación es mayor, este campo contiene un valor truncado. Use AllocationAmount64 para asignaciones muy grandes.
AllocationKind win:UInt32 0x0: asignación de objetos pequeños (la asignación está en un montón de objetos pequeños).

0x1: asignación de objetos grandes (la asignación está en un montón de objetos grandes).
AllocationAmount64 win:UInt64 Tamaño de la asignación, en bytes. Este valor es preciso para asignaciones muy grandes.
TypeId win:Pointer Dirección de la MethodTable. Cuando durante este evento se asignaron varios tipos de objetos, esta es la dirección de la MethodTable que corresponde al último objeto asignado (es decir, el objeto que hizo que se supere el umbral de 100 KB).
TypeName win:UnicodeString Nombre del tipo que se asignó. Cuando durante este evento se asignaron varios tipos de objetos, este es el tipo del último objeto asignado (es decir, el objeto que hizo que se supere el umbral de 100 KB).
HeapIndex win:UInt32 Montón al que se ha asignado el objeto. Este valor es 0 (cero) cuando se ejecuta con la recolección de elementos no utilizados de estación de trabajo.
Address win:Pointer Dirección del último objeto asignado.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento GCCreateConcurrentThread_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)
ThreadingKeyword (0x10000) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCCreateConcurrentThread_V1 11 El subproceso de recolección de elementos no utilizados simultánea se creó.

Este evento no tiene datos de evento.

Evento GCTerminateConcurrentThread_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)
ThreadingKeyword (0x10000) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCTerminateConcurrentThread_V1 12 El subproceso de recolección de elementos no utilizados simultánea finalizó.

Este evento no tiene datos de evento.

Evento GCFinalizersBegin_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCFinalizersBegin_V1 14 Inicio de los finalizadores en ejecución.

Este evento no tiene datos de evento.

Evento GCFinalizersEnd_V1

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCFinalizersEnd_V1 13 Final de los finalizadores en ejecución.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
Count win:UInt32 Número de finalizadores que se ejecutó.
ClrInstanceID win:UInt16 Identificador único para la instancia de CLR o CoreCLR.

Evento SetGCHandle

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCHandleKeyword (0x2) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
SetGCHandle 30 Se ha establecido un identificador de GC.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
HandleID win:Pointer Dirección del identificador asignado.
ObjectID win:Pointer Dirección del objeto cuyo identificador se ha creado.
Kind win:UInt32 Tipo de identificador de GC que se ha establecido.

0x0: WeakShort

0x1: WeakLong

0x2: Strong

0x3: Pinned

0x4: Variable

0x5: RefCounted

0x6: Dependent

0x7: AsyncPinned

0x8: SizedRef
Generation win:UInt32 Generación del objeto cuyo identificador se ha creado.
AppDomainID win:UInt64 Identificador del dominio de aplicación.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento DestroyGCHandle

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCHandleKeyword (0x2) Informativo (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
DestroyGCHandle 31 Se destruye un identificador de GC.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
HandleID win:Pointer Dirección del identificador destruido.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento PinObjectAtGCTime

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Detallado (5)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
PinObjectAtGCTime 33 Se ha anclado un objeto durante una recolección de elementos no utilizados.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
HandleID win:Pointer Dirección del identificador.
ObjectID win:Pointer Dirección del objeto anclado.
ObjectSize win:UInt64 Tamaño del objeto anclado.
TypeName win:UnicodeString Nombre del tipo del objeto anclado.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento GCTriggered

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Detallado (5)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCTriggered 35 Se ha desencadenado una recolección de elementos no utilizados.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
Reason win:UInt32 Motivo por el que se ha desencadenado una recolección de elementos no utilizados.

0x0: AllocSmall

0x1: Induced

0x2: LowMemory

0x3: Empty

0x4: AllocLarge

0x5: OutOfSpaceSmallObjectHeap

0x6: OutOfSpaceLargeObjectHeap

0x7:InducedNoForce

0x8: Stress

0x9: InducedLowMemory
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento IncreaseMemoryPressure

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Información (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
IncreaseMemoryPressure 200 Se ha aumentado la presión de memoria.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento DecreaseMemoryPressure

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Información (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
DecreaseMemoryPressure 201 Se ha reducido la presión de memoria.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
BytesFreed win:UInt32 Bytes liberados.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.

Evento GCMarkWithType

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Información (4)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCMarkWithType 202 Se ha marcado una raíz de GC durante la fase de marca de la recolección de elementos no utilizados.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
HeapNum win:UInt32 Número de montón.
ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.
Type win:UInt32 Tipo raíz de GC.

0x0: Stack

0x1: Finalizer

0x2: Handle

0x3: Older

0x4: SizedRef

0x5: Overflow

Bytes win:UInt64 Número de bytes marcados.

Evento GCJoin_V2

En la tabla siguiente se muestra la palabra clave y el nivel.

Palabra clave para generar el evento Nivel
GCKeyword (0x1) Detallado (5)

En la siguiente tabla se muestra la información del evento.

Evento Id. de evento Se genera cuando
GCJoin_V2 203 Un subproceso de GC combinado.

En la siguiente tabla, se muestran los datos del evento:

Nombre del campo Tipo de datos Descripción
Heap win:UInt32 Número de montón
JoinTime win:UInt32 Indica si este evento se desencadena al principio o al final de una combinación (0x0 para el inicio, 0x1 para el final)
JoinType win:UInt32 Tipo de combinación.

0x0: última combinación

0x1: combinación

0x2: reinicio

0x3: primera combinación inversa

0x4: combinación inversa

ClrInstanceID win:UInt16 Identificador único para la instancia de CoreCLR.