Red de conocimiento informático - Material del sitio web - ¿Cómo obtener el uso de la CPU de la computadora usando programación C o C++? ¿Cómo obtener el uso de CPU de un proceso específico usando C o C++?

¿Cómo obtener el uso de la CPU de la computadora usando programación C o C++? ¿Cómo obtener el uso de CPU de un proceso específico usando C o C++?

Función API para obtener ocupación de CPU:

GetSystemTimes

Función API para obtener uso de memoria:

Función GlobalMemoryStatusEx

Recupera información sobre el uso actual de la memoria física y virtual del sistema.

Función GetPerformanceInfo

Recupera los valores de rendimiento contenidos en la estructura PERFORMANCE_INFORMATION

Para obtener el uso de memoria de un programa específico:

Función GetProcessMemoryInfo

Recupera información sobre el uso de memoria del proceso especificado.

#define _WIN32_WINNT 0x0501

p>

#include

#include ?

usando ? namespace std;

__int64 CompareFileTime? ( FILETIME hora1 , FILETIME hora2 )

{

__int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime ;

__int64 b = time2.dwHighDateTime < < 32 | time2.dwLowDateTime ;

regresar ? (b - a);

}

¿void main()?

{ ?

HANDLE hEvent;

BOOL res ;

FILETIME preidleTime;

FILETIME prekernelTime;

FILETIME preuserTime ;

p>

FILETIME idleTime;

FILETIME kernelTime;

FILETIME userTime;

res = GetSystemTimes( &idleTime, &kernelTime , &userTime );

preidleTime = idleTime;

prekernelTime = kernelTime;

preuserTime = userTime;

hEvent = CreateEvent (NULL, FALSE,FALSE,NULL); // El valor inicial no está señalizado y se establece automáticamente en no señalizado después de cada activación

mientras (1){

WaitForSingleObject( hEvent,1000); //Espera 500 milisegundos

res = GetSystemTimes( &idle

Hora, &kernelTime, &userTime);

int idle = CompareFileTime( preidleTime,idleTime);

int kernel = CompareFileTime( prekernelTime, kernelTime);

int usuario = CompareFileTime(preuserTime, userTime);

int cpu = (kernel +usuario - inactivo) *100/(kernel+usuario);

int cpuidle = (inactivo) *100/ (kernel+usuario);

cout << "Utilización de CPU:" << cpu << "%" << " ? Tasa de inactividad de CPU:" <

preidleTime = idleTime;

prekernelTime = kernelTime;

preuserTime = userTime ;

}

}