C++获取cpu使用率、内存使用率
时间: 2023-08-05 19:06:59 浏览: 220
在C++中获取CPU使用率和内存使用率,可以使用操作系统提供的API函数来实现。下面是Windows平台下获取CPU使用率和内存使用率的示例代码:
获取CPU使用率:
```c++
#include <windows.h>
#include <iostream>
using namespace std;
double getCpuUsage() {
FILETIME idleTime, kernelTime, userTime;
if (!GetSystemTimes(&idleTime, &kernelTime, &userTime)) {
return -1;
}
static FILETIME prevIdleTime = idleTime;
static FILETIME prevKernelTime = kernelTime;
static FILETIME prevUserTime = userTime;
ULONGLONG idle = CompareFileTime(&idleTime, &prevIdleTime);
ULONGLONG kernel = CompareFileTime(&kernelTime, &prevKernelTime);
ULONGLONG user = CompareFileTime(&userTime, &prevUserTime);
double cpuUsage = (double)(kernel + user - idle) / (kernel + user);
prevIdleTime = idleTime;
prevKernelTime = kernelTime;
prevUserTime = userTime;
return cpuUsage * 100;
}
int main() {
while (true) {
double cpuUsage = getCpuUsage();
cout << "CPU usage: " << cpuUsage << "%" << endl;
Sleep(1000);
}
return 0;
}
```
获取内存使用率:
```c++
#include <windows.h>
#include <iostream>
using namespace std;
double getMemoryUsage() {
MEMORYSTATUSEX memStatus;
memStatus.dwLength = sizeof(memStatus);
if (!GlobalMemoryStatusEx(&memStatus)) {
return -1;
}
double memoryUsage = 100.0 * (memStatus.ullTotalPhys - memStatus.ullAvailPhys) / memStatus.ullTotalPhys;
return memoryUsage;
}
int main() {
while (true) {
double memoryUsage = getMemoryUsage();
cout << "Memory usage: " << memoryUsage << "%" << endl;
Sleep(1000);
}
return 0;
}
```
以上示例代码只是提供了一个简单的思路,实际应用中还需要对获取到的数据进行处理和显示。另外,在不同的操作系统上,获取CPU使用率和内存使用率的方法可能会有所不同,需要根据具体的操作系统API来实现。
阅读全文