获取CPU利用率 系统内存和进程内存

    xiaoxiao2021-03-25  53

    示例代码如下 #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; }
    转载请注明原文地址: https://ju.6miu.com/read-36810.html

    最新回复(0)