获取CPU利用率 系统内存和进程内存
生活随笔
收集整理的這篇文章主要介紹了
获取CPU利用率 系统内存和进程内存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
示例代碼如下
#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;
}
總結
以上是生活随笔為你收集整理的获取CPU利用率 系统内存和进程内存的全部內容,希望文章能夠幫你解決所遇到的問題。