Red de conocimiento informático - Conocimiento informático - Cómo obtener datos de rendimiento mediante programación para Windows NT

Cómo obtener datos de rendimiento mediante programación para Windows NT

Acceda al grupo de rendimiento del registro para obtener datos de rendimiento

1. Subdirectorio de rendimiento del registro

Hay un tipo especial de subdirectorio en el registro NT, a saber, el subdirectorio de rendimiento HKEY_PERFORMANCE_DATA. La razón por la que es especial es que esta área de almacenamiento es diferente de otras áreas de almacenamiento como HKEY_LOCAL_MACHINE y HKEY CURRENT_USER. Los usuarios no pueden ver esta tienda usando el Editor del Registro y solo pueden acceder a ella a través de las funciones de la API del Registro. Aunque HKEY_PERFORMANCE_DATA es una colmena relacionada con los datos de rendimiento, los datos de rendimiento de NT en realidad no se almacenan en el registro en forma de parámetros de hardware o software. El programa utiliza la función API del registro de Win32 y los datos clave HKEY_PERFORMANCE_DATA en el administrador. recoger los objetos del sistema correspondientes.

2. Método de recopilación de datos de rendimiento

Si desea recopilar datos de rendimiento del sistema local, puede usar la función RegQueryValueEx con el parámetro clave HKEY_PERFORMANCE_DATA y asegúrese de usarla. RegCloseKey para cerrar después de completar esta función. Para acceder a los datos de rendimiento del sistema remoto, debe utilizar la función RegConnectRegistry con el nombre de la máquina del sistema remoto y la clave HKEY_PERFORMANCE_DATA. Esta función devolverá un identificador que representa los datos de rendimiento del sistema remoto como parámetro en llamadas posteriores a la función RegQueryValueEx (en lugar de usar la clave HKEY_PERFORMANCE_DATA).

Utilice la función API en la biblioteca de enlaces dinámicos PDH.DLL para obtener datos de rendimiento

La implementación de la biblioteca PDH (Performance Data Helper) también obtiene parámetros de rendimiento accediendo al registro. excepto que las funciones API protegen a los usuarios de una gran cantidad de detalles de implementación, lo que hace que la interfaz de programación sea más simple y fácil de usar. En VC 5.0, solo se incluyen pdh.h y pdh.lib, mientras que pdh.dll está disponible en el SDK de Win32 y sus funciones comienzan con Pdh. Los pasos para utilizar la biblioteca PDH para obtener datos de rendimiento son los siguientes:

(1) Crear una cola de contadores y agregar los contadores que se van a muestrear

(2) Recopilar datos de rendimiento

( 3) Calcular y mostrar el resultado final

(4) Finalizar la recopilación de datos de rendimiento

La siguiente es la implementación del método anterior dado en el API de la biblioteca PDH para completar la adquisición del código del procesador.

static HQUERY hQuery = NULL;

nombre de CString; // nombre de la máquina

HCOUNTER hCounter

PDH_STATUS pdhStatus; >

PDH_COUNTER_PATH_ ELEMENTS pdh_Path;

DWORD dwType;

PDH_FMT_COUNTERVALUE pValue

CHAR szCounterBuffer[MAX_PATH]

Longitud de DWORD; = MAX_ PATH;

nombre = "\\" nombre;

pdh_Path.szMachineName = nombre.GetBuffer(nombre.GetLength());

pdh_Path. szObjectName = "Procesador";

pdh_Path.szInstanceName = "0";

pdh_Path.szParentInstance = "0";

pdh_Path.szParentInstance = "0" ;