Contadores de Windows y de CPU
Actualización: noviembre 2007
El generador de perfiles de Visual Studio 2008 permite recopilar datos de rendimiento generados por el sistema operativo (contadores de Windows) y datos de rendimiento generador por la unidad del procesador (contadores de CPU). También puede seleccionar un contador de CPU como evento utilizado para generar intervalos de muestreo al generar perfiles con muestras.
Contadores de Windows
Los contadores de Windows forman parte de la infraestructura de diagnóstico de Windows que proporciona información sobre el rendimiento del sistema operativo o de una aplicación, un servicio o un controlador. Los contadores de Windows dependen de la configuración del equipo actual y puede que no estén disponibles en otros equipos.
Contadores de CPU
Los contadores de CPU son una característica de la CPU del equipo que almacena el recuento de eventos relacionados con el hardware. El generador de perfiles de Visual Studio 2008 permite utilizar estos recuentos de eventos como intervalo de muestreo o recopilar los recuentos de eventos al generar perfiles mediante instrumentación.
Los contadores de rendimiento son específicos de la CPU. Los distintos modelos y versiones de una CPU pueden tener valores de configuración muy diferentes para habilitar el mismo contador de rendimiento. Los eventos portátiles del generador de perfiles de Visual Studio 2008 desacoplan algunos de los contadores de rendimiento comunes de procesadores concretos y permiten recopilar o probar eventos de rendimiento genéricos.
Si desea contar un evento determinado al generar perfiles, por ejemplo, líneas no ejecutadas en la memoria caché L2, el usuario puede generar una sesión de rendimiento alrededor del origen de ese evento. Esto se puede hacer en cualquier CPU que tenga caché de segundo nivel (L2). La sesión de rendimiento se puede mover de una plataforma a otra sin modificación alguna.
El generador de perfiles de Visual Studio 2008 continúa admitiendo eventos concretos para una plataforma específica. Por ejemplo, es posible que un programador en una plataforma Pentium 4 desee contar los eventos que son específicos de la arquitectura NetBurst. Este evento no es portátil, pero el programador podrá aún disponer de él para una sesión de rendimiento específica en una plataforma concreta.
Eventos portátiles y de plataforma
Los eventos portátiles son un grupo de contadores que no son específicos de una CPU concreta. Todos los demás contadores se denominan eventos de plataforma y pueden o no ser compatibles con varias plataformas.
Los contadores para eventos portátiles y de plataforma se definen en archivos .XML, donde se proporcionan los valores concretos relacionados con estos contadores. Hay varios archivos para diferentes CPU, porque los datos para las CPU de Intel y AMD, por ejemplo, son diferentes. El generador de perfiles de Visual Studio 2008 utiliza esta información para presentar al usuario contadores adecuados, tanto portátiles como de plataforma, para la medición del rendimiento.
Eventos portátiles
Los eventos portátiles incluyen los siguientes eventos:
Eventos generales
Nombre del evento |
Descripción del evento |
---|---|
Instrucciones retiradas |
Indica el número de instrucciones que se ejecutaron hasta su finalización. |
Ciclos no detenidos |
Indica sólo los ciclos en los que el procesador no se detiene, por ejemplo, para esperar E/S. |
Eventos de front-end
Nombre del evento |
Descripción del evento |
---|---|
Líneas no ejecutadas en ITLB |
Indica el número de búsquedas del búfer de traducción anticipada de instrucciones (Translation Lookaside Buffer, ITLB) que produjeron una línea no ejecutada. |
Eventos de bifurcaciones
Nombre del evento |
Descripción del evento |
---|---|
Bifurcaciones retiradas |
Indica el número de instrucciones de bifurcación que se ejecutaron hasta su finalización. |
Bifurcaciones mal previstas |
Indica bifurcaciones mal previstas que se producen porque el procesador predice una ruta de acceso incorrecta. Las bifurcaciones mal previstas afectan al rendimiento porque el procesador debe rechazar todo el trabajo realizado y comenzar de nuevo en una ruta de acceso correcta. |
Eventos de memoria:
Nombre del evento |
Descripción del evento |
---|---|
Líneas no ejecutadas en la lectura de caché en L2 |
Indica el número de líneas no ejecutadas en la lectura de caché de segundo nivel. |
Referencias de lectura de caché en L2 |
Indica el número de referencias de lectura de la memoria caché en el segundo nivel. Incluye las líneas no ejecutadas por la carga, además de las líneas no ejecutadas y las líneas ejecutadas por la lectura para la propiedad (RFO). |
Eventos de Pentium IV
Los eventos de Pentium IV contienen los eventos siguientes:
Eventos de memoria:
Nombre del evento |
Descripción del evento |
---|---|
Conflictos de alias de 64K |
Indica el número de conflictos de alias de 64K. Los conflictos se producen cuando una dirección de memoria virtual hace referencia a una línea de caché que es un módulo de 64K bytes diferente de otra línea de caché que ya reside en la caché L1. |
Líneas no ejecutadas en DTLB por recorrido de página |
Indica el número de solicitudes para un recorrido de página que se producen por una línea no ejecutada en el búfer de traducción anticipada de datos (Data Translation Lookaside Buffer, DTLB). Una línea no ejecutada en DTLB por recorrido de página genera un error de página, de modo que el sistema operativo puede cargar la página requerida en las tablas. |
Líneas no ejecutadas en la lectura de caché en L3 |
Indica el número de líneas no ejecutadas en la lectura de la memoria caché de tercer nivel. Incluye las líneas no ejecutadas que se producen debido a una carga y lectura para la propiedad (RFO). |
Referencias de lectura de caché en L3 |
Indica el número de referencias de lectura de la memoria caché en el tercer nivel. Incluye las líneas no ejecutadas por la carga y tanto las líneas no ejecutadas como las ejecutadas por la lectura para la propiedad (RFO). |
Todas las reproducciones de carga MOB |
Indica el número de instrucciones de carga que experimentaron reproducciones del búfer de solicitud de memoria (MOB) porque no se observaron las restricciones de reenvío de almacenamiento a carga. |
Carga o almacenamiento de divisiones completado |
Indica el número de divisiones cargadas y almacenadas. Las divisiones de datos reducen el rendimiento porque obligan al procesador a leer/escribir dos líneas de caché por separado y a pegar a continuación las dos partes de datos. |
Eventos de interfaz de usuario:
Nombre del evento |
Descripción del evento |
---|---|
Líneas no ejecutadas en ITLB por recorrido de página |
Indica el número de solicitudes de recorrido de página debidas a líneas no ejecutadas en ITLB. |
Referencias ITLB |
Indica el acceso a la memoria caché del búfer de traducción anticipada de instrucciones (ITLB). |
Eventos de bifurcaciones:
Nombre del evento |
Descripción del evento |
---|---|
Líneas no ejecutadas en la búsqueda en caché de seguimiento |
Indica los retrasos generados para descodificar las instrucciones y generar una traza debido a una línea no ejecutada en la búsqueda de caché de seguimiento. |
Unidad de punto flotante:
Nombre del evento |
Descripción del evento |
---|---|
Micro-operaciones MMX de 64 bits retiradas |
Indica el número de micro-operaciones MMX de 64 bits retiradas. Una instrucción de ensamblado se puede dividir en una o más micro-operaciones. |
Micro-operaciones SIMD X87 retiradas |
Indica el número de micro-operaciones de una sola instrucción y múltiples datos (single instruction multiple data, SIMD) de X87 retiradas. Una instrucción de ensamblado se puede dividir en una o más micro-operaciones. |
Micro-operaciones de punto flotante X87 retiradas |
Indica el número de micro-operaciones de punto flotante de X87 retiradas. Una instrucción de ensamblado se puede dividir en una o más micro-operaciones. |
Micro-operaciones de precisión sencilla empaquetadas retiradas |
Indica el número de micro-operaciones de precisión sencilla empaquetadas retiradas. Se requieren instrucciones adicionales para desempaquetar los datos. |
Micro-operaciones de precisión sencilla escalares retiradas |
Indica el número de micro-operaciones de precisión sencilla escalares retiradas. |
Micro-operaciones de precisión doble empaquetadas retiradas |
Indica el número de micro-operaciones de precisión doble empaquetadas retiradas. Se requieren instrucciones adicionales para desempaquetar los datos. |
Micro-operaciones de precisión doble escalares retiradas |
Indica el número de micro-operaciones de precisión doble escalares retiradas. |
Micro-operaciones MMX de 128 bits retiradas |
Indica el número de micro-operaciones MMX de 128 bits retiradas. Una instrucción de ensamblado se puede dividir en una o más micro-operaciones. |
Asistencias de entrada SSE |
Indica el número de asistencias necesarias para controlar una condición de excepción en las operaciones de punto flotante de SSE/SSE2 |
Ver los contadores disponibles
UI de Visual Studio
Para ver una lista de todos los contadores de rendimiento de la CPU admitidos en la plataforma actual, abra las páginas de propiedades de la sesión de rendimiento y realice una de las siguientes operaciones:
Seleccione Muestreo y, a continuación, Contador de rendimiento en la lista Evento de ejemplo.
O bien,
Seleccione Contadores de CPU y, a continuación, Recopilar contadores de CPU.
Para ver una lista de los contadores de rendimiento de Windows admitidos en la plataforma actual, abra la página de propiedades de sesión de rendimiento y, a continuación, seleccione Contadores de Windows.
Línea de comandos
Utilice la opción /querycounters de VSPerfCmd.exe para imprimir una lista de todos los contadores de rendimiento de la CPU admitidos en la plataforma actual.
Vea también
Tareas
Cómo: Elegir eventos de muestreo
Cómo: Recopilar datos de contadores de CPU
Cómo: Recopilar datos de contadores de Windows
Otros recursos
Información general (Herramientas de generación de perfiles)