Compartir a través de


Eventos de recolección de elementos no utilizados en tiempo de ejecución de .NET

Los eventos descritos en este artículo recopilan información relacionada con la recolección de elementos no utilizados. Ayudan en el diagnóstico y la depuración, incluida la determinación del número de veces que se realizó la recolección de elementos no utilizados, la cantidad de memoria que se liberó 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, consulte 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 tabla siguiente 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 tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
Count win:UInt32 La nrecolección de elementos no utilizados.
Depth win:UInt32 Generación que se va a recopilar.
Reason win:UInt32 Por qué se desencadenó la recolección de elementos no utilizados:

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

0x1: inducido.

0x2: memoria baja.

0x3: vacío.

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

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

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

0x7: inducida pero no forzada como bloqueo.
Type win:UInt32 0x0: bloqueo de la recolección de elementos no utilizados fuera de la recolección de elementos no utilizados en segundo plano.

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

0x2: bloqueo de la recolección de elementos no utilizados durante la recolección de elementos no utilizados en segundo plano.
ClrInstanceID win:UInt16 Identificador único de 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 tabla siguiente 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 tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
Count win:UInt32 La nrecolección de elementos no utilizados.
Depth win:UInt32 Generación recopilada.
ClrInstanceID win:UInt16 Identificador único de 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 tabla siguiente 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 tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
GenerationSize0 win:UInt64 Tamaño, en bytes, de la memoria de generación 0.
TotalPromotedSize0 win:UInt64 Número de bytes que se promueven de la generación 0 a la generación 1.
GenerationSize1 win:UInt64 Tamaño, en bytes, de la memoria de generación 1.
TotalPromotedSize1 win:UInt64 Número de bytes que se promueven de la generación 1 a la generación 2.
GenerationSize2 win:UInt64 Tamaño, en bytes, de la memoria de generación 2.
TotalPromotedSize2 win:UInt64 Número de bytes que sobrevivieron en la generación 2 después de la última colecció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 colección.
FinalizationPromotedSize win:UInt64 Tamaño total, en bytes, de los objetos que están listos para finalizar.
FinalizationPromotedCount win:UInt64 Número de objetos que están listos para finalizar.
PinnedObjectCount win:UInt32 Número de objetos anclados (no extraíbles).
SinkBlockCount win:UInt32 Número de bloques de sincronización en uso.
GCHandleCount win:UInt32 Número de identificadores de recolección de elementos no utilizados en uso.
ClrInstanceID win:UInt16 Identificador único de la instancia de CoreCLR.
GenerationSize4 win:UInt64 Tamaño, en bytes, del montón de objetos anclado.
TotalPromotedSize4 win:UInt64 Número de bytes que sobrevivieron en el montón de objetos anclados después de la última colecció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 tabla siguiente se muestra la información del evento:

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

En la tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato 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 de 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, incluido en actualizaciones periódicas. La aplicación nunca debe hacer suposiciones sobre o depender de un tamaño de segmento determinado, ni 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 tabla siguiente 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 tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
Address win:UInt64 Dirección del segmento.
ClrInstanceID win:UInt16 Identificador único de 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 tabla siguiente se muestra la información del evento:

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

Este evento no tiene ningún dato 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 tabla siguiente se muestra la información del evento:

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

Este evento no tiene ningún dato de evento.

evento GCSuspendEEEnd_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 tabla siguiente se muestra la información del evento:

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

Este evento no tiene ningún dato 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 tabla siguiente 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 para la recolección de elementos no utilizados.
Nombre del campo Tipo de dato Descripción
Count win:UInt32 La nrecolección de elementos no utilizados.
Reason win:UInt32 Motivo de la suspensión ee.

0x0: Suspender para otros

0x1: suspender para GC.

0x2: suspender el apagado de AppDomain.

0x3: suspender para el tono de código.

0x4: suspender para el apagado.

0x5: suspender para el depurador.

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

0x7: suspender 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 tabla siguiente 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 tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
AllocationAmount win:UInt32 Tamaño de asignación, en bytes. Este valor es preciso para las asignaciones que son menores que la longitud de un 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ño (la asignación está en un montón de objetos pequeño).

0x1: asignación de objetos grandes (la asignación está en montón de objetos grandes).
AllocationAmount64 win:UInt64 Tamaño de asignación, en bytes. Este valor es preciso para las asignaciones muy grandes.
TypeId win:Pointer Dirección de MethodTable. Cuando hay varios tipos de objetos asignados durante este evento, esta es la dirección de MethodTable que corresponde al último objeto asignado (el objeto que provocó que se superara el umbral de 100 KB).
TypeName win:UnicodeString Nombre del tipo que se asignó. Cuando hay varios tipos de objetos asignados durante este evento, este es el tipo del último objeto asignado (el objeto que provocó que se superara el umbral de 100 KB).
HeapIndex win:UInt32 Montón donde se asignó 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 de 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 tabla siguiente se muestra la información del evento:

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

Este evento no tiene ningún dato 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 tabla siguiente se muestra la información del evento:

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

Este evento no tiene ningún dato 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 tabla siguiente se muestra la información del evento:

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

Este evento no tiene ningún dato 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 tabla siguiente 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 tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
Count win:UInt32 Número de finalizadores que se ejecutaron.
ClrInstanceID win:UInt16 Identificador único de 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 tabla siguiente 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 tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
HandleID win:Pointer Dirección del identificador asignado.
ObjectID win:Pointer Dirección del objeto cuyo identificador se creó.
Kind win:UInt32 Tipo de identificador de GC que se estableció.

0x0: WeakShort

0x1: WeakLong

0x2: Fuerte

0x3: anclado

0x4: variable

0x5: RefCounted

0x6: Dependiente

0x7: AsyncPinned

0x8: SizedRef
Generation win:UInt32 Generación del objeto cuyo identificador se creó.
AppDomainID win:UInt64 Identificador de AppDomain.
ClrInstanceID win:UInt16 Identificador único de 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 tabla siguiente se muestra la información del evento:

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

En la tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
HandleID win:Pointer Dirección del identificador destruido.
ClrInstanceID win:UInt16 Identificador único de 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 tabla siguiente se muestra la información del evento:

Evento Id. de evento Se genera cuando
PinObjectAtGCTime 33 Un objeto se ancló durante una gc.

En la tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato 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 de 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 tabla siguiente se muestra la información del evento:

Evento Id. de evento Se genera cuando
GCTriggered 35 Se ha desencadenado un GC.

En la tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
Reason win:UInt32 Motivo por el que se desencadenó un GC.

0x0: AllocSmall

0x1: Inducido

0x2: LowMemory

0x3: Vacío

0x4: AllocLarge

0x5: OutOfSpaceSmallObjectHeap

0x6: OutOfSpaceLargeObjectHeap

0x7:InducedNoForce

0x8: Estrés

0x9: InducedLowMemory
ClrInstanceID win:UInt16 Identificador único de 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 tabla siguiente 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 tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
ClrInstanceID win:UInt16 Identificador único de 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 tabla siguiente 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 tabla siguiente se muestran los datos del evento:

Nombre del campo Tipo de dato Descripción
BytesFreed win:UInt32 Bytes liberados.
ClrInstanceID win:UInt16 Identificador único de 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 tabla siguiente 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 marcado de GC.

En la tabla siguiente se muestran los datos del evento:

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

0x0: Pila

0x1: Finalizador

0x2: Identificador

0x3: Anterior

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 tabla siguiente se muestra la información del evento:

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

En la tabla siguiente se muestran los datos del evento:

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

0x0: Última unión

0x1: Unirse

0x2: Reiniciar

0x3: primera combinación inversa

0x4: Combinación inversa

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