前言

目的:读取并控制CPU占用率

近期在做CPU Usage方面的事情,让CPU以一种高占用率的状态运行一定的时间,需要读取CPU各个核的占用率,网上关于这方面的资料好少,FQ也只找到了一个WMI的方法,但是感觉对比任务管理器里面的结果偏小。目前也只能读取CPU总的占用率,和任务管理器看起来差不多,也不是完全相同。

虽然还没有实现结果,但是想记录一下历程。

参考链接:

https://blog.csdn.net/wangting627/article/details/22931337

https://blog.csdn.net/fyxichen/article/details/50577580

 

内容

1. 任务管理器查看CPU占用率。

方法一:

C++第四十二篇 -- CPU Usage

方法二:

C++第四十二篇 -- CPU UsageC++第四十二篇 -- CPU Usage

 

2. C++读取CPU的占用率

原理:先读取一次CPU的当前的空闲时间,内核时间和用户时间,间隔一秒,再次读取三个时间,经过公式演算,得到CPU在这一秒内的占用率。

第一次读取:

    FILETIME ftIdle, ftKernel, ftUser;
    BOOL flag = FALSE;
    if (flag = GetSystemTimes(&ftIdle, &ftKernel, &ftUser))
    {
        m_fOldCPUIdleTime = FileTimeToDouble(&ftIdle);
        m_fOldCPUKernelTime = FileTimeToDouble(&ftKernel);
        m_fOldCPUUserTime = FileTimeToDouble(&ftUser);

    }
    return flag;
View Code

相关文章: