示例代码如下
#include <iostream>#include <windows.h>#include <Psapi.h>using namespace std;__int64 CompareFileTime(FILETIME t1,FILETIME t2){__int64 a = t1.dwHighDateTime << 32 | t1.dwLowDateTime;__int64 b = t2.dwHighDateTime << 32 | t2.dwLowDateTime;return (b - a);}int GetCpuUsage(){HANDLE hEvent;FILETIME preidleTime;FILETIME prekernelTime;FILETIME preuserTime;FILETIME idleTime;FILETIME kernelTime;FILETIME userTime;GetSystemTimes(&idleTime, &kernelTime, &userTime);preidleTime = idleTime;prekernelTime = kernelTime;preuserTime = userTime;hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);WaitForSingleObject(hEvent, 500);GetSystemTimes(&idleTime, &kernelTime, &userTime);__int64 idle = CompareFileTime(preidleTime, idleTime);__int64 kernel = CompareFileTime(prekernelTime, kernelTime);__int64 user = CompareFileTime(preuserTime, userTime);__int64 iCpuUsage = -1;iCpuUsage = (kernel + user - idle) * 100 / (kernel + user);return iCpuUsage;}int main(){//获取系统内存使用率MEMORYSTATUS ms;GlobalMemoryStatus(&ms);cout << "Mem usage = " << ms.dwMemoryLoad << endl;//获取进程的内存(Private Bytes)PROCESS_MEMORY_COUNTERS pmc;GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(PROCESS_MEMORY_COUNTERS));cout << "Current Process Mem usage = " << pmc.PagefileUsage << endl;//获取当前系统的CPU利用率__int64 iCpuUsage = GetCpuUsage();cout << "CPU usage = " << iCpuUsage << endl;return 0;}