Novedades de los contadores de rendimiento
En esta sección se describen las nuevas características que se agregaron a los contadores de rendimiento para cada versión.
Windows 10 20H1
Si está leyendo datos de rendimiento directamente desde el Registro, ahora puede realizar una colección de solo metadatos para evitar un trabajo innecesario al crear una lista de contadores y objetos de rendimiento disponibles. Si usa MetadataGlobal
en lugar de Global
en la consulta, todos los archivos DLL de proveedor habilitados para metadatos omitirán el paso de recopilación de datos, lo que podría mejorar el rendimiento de las consultas en los sistemas con muchos procesos o subprocesos. Los archivos DLL de proveedor que no están habilitados para metadatos seguirán funcionando como antes.
Si proporciona datos de rendimiento mediante un archivo DLL de rendimiento, puede implementar la compatibilidad con la recopilación de solo metadatos para evitar la recopilación de datos innecesaria.
Collect
Actualice la función para responder a MetadataGlobal
las consultas y MetadataCostly
solo con los metadatos (use PERF_METADATA_NO_INSTANCES
o PERF_METADATA_MULTIPLE_INSTANCES
para NumInstances
y omita todos los PERF_INSTANCE_DEFINITION
bloques de la respuesta) y agregue un valor del Registro con REG_DWORD
el Collect Supports Metadata
valor 1 a la subclave del Performance
servicio.
Windows 7 y Windows Server 2008 R2
La herramienta CTRPP se cambió para mejorar y simplificar la generación de código. La herramienta ahora genera solo un encabezado y un archivo de recursos. Si desea un comportamiento de generación de código anterior (no recomendado), puede usar el nuevo -legacy
argumento.
- Ahora debe especificar los argumentos y
-rc
nuevos-o
que especifican el nombre y la ubicación del encabezado y el archivo de recursos, respectivamente. - Puede usar el nuevo
-prefix
argumento opcional para especificar una cadena que se agregue al principio de las variables globales y las funciones definidas en el archivo de encabezado generado. - Si tiene que actualizar el manifiesto de contadores, el uso de la nueva generación de código elimina la necesidad de combinar la implementación de devolución de llamada anterior con el nuevo código generado, ya que las devoluciones de llamada ya no se incluyen en el código generado.
Hay disponible un nuevo symbol
atributo para los siguientes elementos de manifiesto:
El symbol
atributo es necesario para provider y counterSet, y es opcional para counter. El atributo permite proporcionar un nombre simbólico que puede usar para hacer referencia a cada elemento al llamar a las funciones del proveedor (por ejemplo, puede usar el nombre simbólico del conjunto de contadores al llamar a PerfCreateInstance).
Windows Vista
La arquitectura de contadores de rendimiento para proporcionar datos de contadores se cambió completamente para esta versión.
Anteriormente, usó un archivo INI para definir los datos del contador e implementó un archivo DLL de rendimiento que se ejecutó en el proceso del consumidor para proporcionar los datos cuando un consumidor lo solicitó. Esta arquitectura está en desuso y no se recomienda para el nuevo código debido a problemas significativos de rendimiento y confiabilidad.
La nueva arquitectura usa un manifiesto para definir los datos del contador y ejecuta código en el proceso del proveedor para proporcionar los datos cuando un consumidor lo solicita. Para obtener más información, consulte Proporcionar datos de contador con la versión 2.0.
Se agregaron las siguientes funciones para esta versión:
- ControlCallback
- PerfCreateInstance
- PerfDeleteInstance
- PerfQueryInstance
- PerfSetCounterSetInfo
- PerfSetULongCounterValue
- PerfSetULongLongCounterValue
- PerfSetCounterRefValue
- PerfStartProvider
- PerfStopProvider
Se agregaron las siguientes estructuras para esta versión:
Para obtener una lista de los elementos XML que se usan en el manifiesto para definir los contadores, vea Esquema de contadores de rendimiento.
Para obtener información sobre la herramienta de preprocesador CTRPP que analiza el manifiesto y genera el código que usa como punto de partida para el proveedor, consulte CTRPP.