【Windows系统】C++方式获取系统的CPU使用率

6 篇文章 0 订阅
56 篇文章 0 订阅

计算CPU占用率就需要获取系统总的内核时间,用户时间空闲时间。

其中,空闲时间就是内核空转,所以,内核时间包含空闲时间

计算公式如下:

运行时间 = 内核时间 + 用户时间 - 空闲时间

间隔时间 =  内核时间  + 用户时间

CPU使用率% = 运行时间 / 间隔时间 

C++实现代码如下:

#include <windows.h>

double get_cpu_usage()
{
    static FILETIME pre_idle_time;
    static FILETIME pre_kernel_time;
    static FILETIME pre_user_time;

    // 空闲时间
    FILETIME idle_time;
    // 内核时间
    FILETIME kernel_time;
    // 用户时间
    FILETIME user_time;
    BOOL ret = GetSystemTimes(&idle_time, &kernel_time, &user_time);

    qint64 idle = CompareFileTime(pre_idle_time, idle_time);
    qint64 kernel = CompareFileTime(pre_kernel_time, kernel_time);
    qint64 user = CompareFileTime(pre_user_time, user_time);

    float rate = (kernel + user - idle) / (1.0*(kernel + user));

    pre_idle_time = idle_time;
    pre_kernel_time = kernel_time;
    pre_user_time = user_time;

    return rate;
}

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哎哟哟爱民谣

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值