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

本文介绍了一种使用C++来计算CPU占用率的方法。通过获取系统的内核时间、用户时间和空闲时间,利用特定公式计算出CPU使用率。文中提供了详细的计算公式和C++实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算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;
}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值