如何在c++代码中打印一些设备cpu使用信息
时间: 2023-12-09 11:03:29 浏览: 38
你可以使用操作系统提供的API来获取设备CPU使用信息并在C++代码中打印。以下是在Windows操作系统中实现的一个示例:
```c++
#include <windows.h>
#include <iostream>
int main()
{
// 获取系统信息
SYSTEM_INFO si;
GetSystemInfo(&si);
// 获取当前进程的处理器时间
FILETIME dummy, kernelTime, userTime;
GetProcessTimes(GetCurrentProcess(), &dummy, &dummy, &kernelTime, &userTime);
// 计算CPU使用率
ULARGE_INTEGER lastCPU, lastSysCPU, lastUserCPU;
lastCPU.QuadPart = 0;
lastSysCPU.QuadPart = 0;
lastUserCPU.QuadPart = 0;
DWORD numProcessors = si.dwNumberOfProcessors;
HANDLE hProcess = GetCurrentProcess();
DWORD_PTR processAffinityMask = 0;
DWORD_PTR systemAffinityMask = 0;
GetProcessAffinityMask(hProcess, &processAffinityMask, &systemAffinityMask);
while (true) {
// 获取当前进程的处理器时间
GetProcessTimes(GetCurrentProcess(), &dummy, &dummy, &kernelTime, &userTime);
ULARGE_INTEGER sysCPU, userCPU, cpu;
sysCPU.LowPart = kernelTime.dwLowDateTime;
sysCPU.HighPart = kernelTime.dwHighDateTime;
userCPU.LowPart = userTime.dwLowDateTime;
userCPU.HighPart = userTime.dwHighDateTime;
cpu.QuadPart = sysCPU.QuadPart + userCPU.QuadPart;
ULARGE_INTEGER sysDiff, userDiff, cpuDiff;
sysDiff.QuadPart = sysCPU.QuadPart - lastSysCPU.QuadPart;
userDiff.QuadPart = userCPU.QuadPart - lastUserCPU.QuadPart;
cpuDiff.QuadPart = cpu.QuadPart - lastCPU.QuadPart;
double sysPercent = (double)sysDiff.QuadPart / (double)cpuDiff.QuadPart;
double userPercent = (double)userDiff.QuadPart / (double)cpuDiff.QuadPart;
double totalPercent = (double)cpuDiff.QuadPart / (double)(si.dwNumberOfProcessors * 10000000);
// 打印CPU使用信息
std::cout << "System CPU Usage: " << sysPercent * 100 << "%" << std::endl;
std::cout << "User CPU Usage: " << userPercent * 100 << "%" << std::endl;
std::cout << "Total CPU Usage: " << totalPercent * 100 << "%" << std::endl;
lastCPU = cpu;
lastSysCPU = sysCPU;
lastUserCPU = userCPU;
Sleep(1000); // 1秒钟刷新一次CPU使用信息
}
return 0;
}
```
这个示例程序可以每秒钟打印一次系统CPU使用率、用户CPU使用率和总CPU使用率。你可以根据自己的需求修改代码来打印其他信息。