Contadores de rendimiento de memoria

La categoría de memoria de CLR de .NET de la consola Rendimiento incluye contadores que proporcionan información sobre el recolector de elementos no utilizados. En la siguiente tabla se describen estos contadores de rendimiento.

Contador de rendimiento

Descripción

Número de bytes en todos los montones

Muestra la suma de los contadores de Gen 1 Heap Size, de Gen 2 Heap Size, y de Large Object Heap Size . Este contador indica la memoria actual asignada en bytes en los montones de recolección de elementos no utilizados.

Número de identificadores del GC

Muestra el número actual de identificadores de recolección de elementos no utilizados en uso. Los controladores de recolección de elementos no utilizados son controladores para recursos externos a Common Language Runtime y al entorno administrado.

Número de recolecciones de gen. 0

Muestra el número de veces que se recolectan elementos no utilizados de objetos de la generación 0 (es decir, los objetos asignados más recientemente) desde que se inició la aplicación.

La recolección de elementos no utilizados de la generación 0 tiene lugar cuando la memoria de la generación 0 no es suficiente para satisfacer una solicitud de asignación. Este contador se incrementa al final de una recolección de elementos no utilizados de la generación 0. Las recolecciones de elementos no utilizados de generaciones superiores incluyen todas las recolecciones de las generaciones inferiores. Este contador se incrementa explícitamente cuando se realiza una recolección de elementos no utilizados de una generación superior (1 ó 2).

Este contador muestra el último valor observado. El valor de contador _Global_ no es preciso y se debe pasar por alto.

Número de recolecciones de gen. 1

Muestra el número de veces que se recolectan elementos no utilizados de objetos de la generación 1 desde que se inició la aplicación.

El contador se incrementa al final de una recolección de elementos no utilizados de la generación 1. Las recolecciones de elementos no utilizados de generaciones superiores incluyen todas las recolecciones de las generaciones inferiores. Este contador se incrementa explícitamente cuando se realiza una recolección de elementos no utilizados de una generación superior (generación 2).

Este contador muestra el último valor observado. El valor de contador _Global_ no es preciso y se debe pasar por alto.

Número de recolecciones de gen. 2

Muestra el número de veces que se recolectan elementos no utilizados de objetos de la generación 2 desde que se inició la aplicación. El contador se incrementa al final de una recolección de elementos no utilizados de la generación 2 (también denominada recolección completa de elementos no utilizados).

Este contador muestra el último valor observado. El valor de contador _Global_ no es preciso y se debe pasar por alto.

Número de GC provocadas

Muestra el número máximo de veces que se recolectaron los elementos no utilizados debido a una llamada explícita a GC.Collect. Es conveniente dejar que el recolector de elementos no utilizados ajuste la frecuencia de sus recolecciones.

Número de objetos anclados

Muestra el número de objetos anclados encontrados en la última recolección de elementos no utilizados. Un objeto anclado es un objeto que el recolector de elementos no utilizados no puede mover en memoria. Este contador sigue objetos anclados únicamente en las pilas que se recolectan como elementos no utilizados. Por ejemplo, una recolección de elementos no utilizados de la generación 0 hace que se enumeren los objetos anclados sólo en el montón de la generación 0.

Número de bloques de sincronización en uso

Muestra el número actual de bloques de sincronización en uso. Los bloques de sincronización son estructuras de datos por objeto que se asignan para almacenar información de sincronización. Las referencias parciales lock a los objetos administrados y deben ser negativamente por el recolector de elementos no utilizados. Los bloques de sincronización no se limitan a almacenar información de sincronización; también pueden almacenar metadatos de interoperabilidad COM. Este contador indica problemas de rendimiento por un uso intensivo de primitivos de sincronización.

Número de bytes totales confirmados

Muestra la cantidad de memoria virtual, en bytes, confirmada actualmente por el recolector de elementos no utilizados. La memoria confirmada es la memoria física para la que se ha reservado espacio en el archivo de paginación.

Número de bytes totales reservados

Muestra la cantidad de memoria virtual, en bytes, reservados actualmente por el recolector de elementos no utilizados. Memoria reservada es el espacio de memoria virtual reservada para la aplicación cuando ningún no se ha utilizado el disco o páginas de memoria principal.

% de tiempo de GC

Muestra el porcentaje de tiempo transcurrido que se dedicó a realizar una recolección de elementos no utilizados desde el último ciclo de recolección. Este contador suele indicar el trabajo realizado pro el recolector de elementos no utilizados para recolectar y compactar memoria en nombre de la aplicación. Este contador sólo se actualiza al final de cada recolección de elementos no utilizados. Este contador no es un promedio; su valor refleja el último valor observado.

Bytes asignados por segundo

Muestra el número de bytes por segundo asignados en el montón de recolección de elementos no utilizados. Este contador se actualiza al final de cada recolección de elementos no utilizados, no en cada asignación. Este contador no es un promedio de tiempo, sólo muestra la diferencia entre los valores observados de los dos últimos ejemplos dividida por la duración del intervalo de ejemplo.

Supervivientes de la finalización

Muestra el número de objetos obtenidos por el recolector de elementos no utilizados que sobreviven a una recolección porque están esperando para finalizarse. Si estos objetos contienen referencias a otros objetos, esos objetos también sobrevivirán pero no estarán incluidos en el valor de este contador. El contador de Promoted Finalization-Memory from Gen 0 representa toda la memoria que sobrevivió debido a la finalización.

Este contador no es acumulativo; se actualiza al final de cada recolección de elementos no utilizados con el número de supervivientes únicamente durante esa recolección en particular . Este contador indica la sobrecarga adicional en la que podría incurrir la aplicación por la finalización.

Tamaño del montón de gen. 0

Muestra los bytes máximos que se pueden asignar en la generación 0; no indica el número actual de bytes asignados en la generación 0.

Una recolección de elementos no utilizados de la generación 0 tiene lugar cuando las asignaciones desde la última recolección superan este tamaño. El recolector de elementos no utilizados ajusta el tamaño de la generación 0, que puede cambiar durante la ejecución de la aplicación. Al final de una recolección de la generación 0, el tamaño del montón de la generación 0 es de 0 bytes. Este contador muestra el tamaño, en bytes, de las asignaciones que invoca la siguiente recolección de elementos no utilizados de la generación 0.

Este contador se actualiza al final de una recolección de elementos no utilizados, no en cada asignación.

Bytes por segundo promovidos de gen. 0

Muestra los bytes por segundo que se promueven de generación 0 a generación 1. Se promueve la memoria cuando ésta sobrevive a una recolección de elementos no utilizados. Este contador es un indicador de los objetos con una duración relativamente larga que se crean por segundo.

Este contador muestra la diferencia entre los valores observados en las dos últimas muestras dividido entre la duración del intervalo de obtención de muestras.

Tamaño del montón de gen. 1

Muestra el número actual de bytes en generación 1; este contador no muestra el tamaño máximo de generación 1. Los objetos no se asignan directamente en esta generación; se promueven desde las recolecciones de elementos no utilizados de la generación 0 anterior. Este contador se actualiza al final de una recolección de elementos no utilizados, no en cada asignación.

Bytes por segundo promovidos de gen. 1

Muestra los bytes por segundo que se promueven de generación 1 a generación 2. Los objetos que se promueven sólo porque están esperando a finalizar, no se incluyen en este contador.

Se promueve la memoria cuando ésta sobrevive a una recolección de elementos no utilizados. No se promueve nada desde la generación 2, ya que es la generación más antigua. Este contador es un indicador de los objetos con una duración muy larga que se crean por segundo.

Este contador muestra la diferencia entre los valores observados en las dos últimas muestras dividido entre la duración del intervalo de obtención de muestras.

Tamaño del montón de gen. 2

Muestra el número actual de byte en generación 2. Los objetos no se asignan directamente en esta generación; se promueven desde la generación 1 durante las recolecciones de elementos no utilizados de la generación 1 anterior. Este contador se actualiza al final de una recolección de elementos no utilizados, no en cada asignación.

Tamaño del montón del objeto grande

Muestra el tamaño actual, en bytes, del montón del objeto grande. Los objetos mayores que aproximadamente 85.000 bytes son tratados como objetos grandes por el recolector de elementos no utilizados y asignados directamente en una pila especial; no se promueven a través de las compilaciones. Este contador se actualiza al final de una recolección de elementos no utilizados, no en cada asignación.

Id. de proceso

Muestra el identificador de proceso de la instancia del proceso de CLR se supervisa que.

Memoria de finalización promovida de gen. 0

Muestra los bytes de memoria que se promueven de la generación 0 a la generación 1 sólo porque están esperando para finalizarse. Este contador no es acumulativo; muestra el valor observado al final de la última recolección de elementos no utilizados.

Memoria promovida de gen. 0

Muestra los bytes de memoria que sobreviven a la recolección de elementos no utilizados y que se promueven de la generación 0 a la generación 1. Los objetos que se promueven sólo porque están esperando a finalizar, no se incluyen en este contador. Este contador no es acumulativo; muestra el valor observado al final de la última recolección de elementos no utilizados.

Memoria promovida de gen. 1

Muestra los bytes de memoria que sobreviven a la recolección de elementos no utilizados y que se promueven de la generación 1 a la generación 2. Los objetos que se promueven sólo porque están esperando a finalizar, no se incluyen en este contador. Este contador no es acumulativo; muestra el valor observado al final de la última recolección de elementos no utilizados. Este contador se restablece a 0 si la última recolección de elementos no utilizados era una recolección de la generación 0 únicamente.

Vea también

Referencia

Generar perfiles en tiempo de ejecución

Conceptos

Administración de memoria automática

Otros recursos

Contadores de rendimiento de .NET Framework