Qt笔记(六十七)之获取 计算CPU使用率
一.前言
楼主最近在获取电脑设备的一些,今天想获取和计算cpu的使用率,于是分享记录下
二.核心代码
主要是利用了
GetSystemTimes
这个系统API
void getCpu()
// FILETIME 是一个用两个32位字节表示时间值的结构体
// dwLowDateTime 低位32位时间值。
// dwHighDateTime 高位32位时间值
static FILETIME preidleTime;
static FILETIME prekernelTime;
static FILETIME preuserTime;
FILETIME idleTime;
FILETIME kernelTime;
FILETIME userTime;
// 三个参数分别为 cpu空闲时间 内核进程占用时间 用户进程占用时间
// 函数执行成功返回true 执行失败返回false
bool k = GetSystemTimes(&idleTime, &kernelTime, &userTime);
qDebug() << "GetSystemTimes:" << k;
if (!k)
return "";
quint64 x, y;
int idle, kernel, user;
x = (preidleTime.dwHighDateTime << 31) | preidleTime.dwLowDateTime;
y = (idleTime.dwHighDateTime << 31) | idleTime.dwLowDateTime;
idle = y - x;
x = (prekernelTime.dwHighDateTime << 31) | prekernelTime.dwLowDateTime;
y = (kernelTime.dwHighDateTime << 31) | kernelTime.dwLowDateTime;
kernel = y - x;
x = (preuserTime.dwHighDateTime << 31) | preuserTime.dwLowDateTime;
y = (userTime.dwHighDateTime << 31) | userTime.dwLowDateTime;
user = y - x;
int cpuPercent = (kernel + user - idle) * 100 / (kernel + user);
preidleTime = idleTime;
prekernelTime = kernelTime;