• CE6 CPU 使用率


    直接上代码:

     1 /* 
     2 在 OEMIdle() 函数中 OEM 根据 (int)(dwRescheduleTime – CurMSec)  
     3 计算值判断是否让 CPU 进入 idle 状态,因此我们可以利用此函数来计算 CPU 的 loading.  
     4 根据 MSDN ,可以写个应用程序,每 100ms 去计算一次 idle 的时间, 
     5 10 次评价后,在UI上更新,以下是一个被 Timer 循环调用的函数。建议将此函数写成的一个线程。 
     6 */  
     7   
     8 void CSystemInfoDlg::GetCpuStatus(CString &csInfo)  
     9 {  
    10 #define IDLE_COUNT  10  
    11   DWORD dwStartTick = 0;  
    12   DWORD dwIdleStart = 0;  
    13   DWORD dwStopTick = 0;  
    14   DWORD dwIdleEnd = 0;  
    15   int iPresentIdle = 0;  
    16   int iCpuUage[IDLE_COUNT] = {0};  
    17   int iCount = 0;  
    18   int iAverage = 0;  
    19   static int iPreAverage = 0;  
    20   DWORD dwSum = 0;   
    21   int i = 0;  
    22   
    23   while(iCount < IDLE_COUNT)  
    24   {  
    25     dwStartTick = GetTickCount();  
    26     dwIdleStart = GetIdleTime();  
    27     Sleep(100);  
    28   
    29     dwStopTick = GetTickCount();  
    30     dwIdleEnd = GetIdleTime();  
    31   
    32     iPresentIdle = (100 * (dwIdleEnd - dwIdleStart)) / (dwStopTick - dwStartTick);  
    33     iCpuUage[iCount] = iPresentIdle;  
    34     iCount++;  
    35     //10 times count  
    36     if(IDLE_COUNT == iCount)  
    37     {  
    38       for(i = 0;i < IDLE_COUNT;i++)  
    39       {  
    40         dwSum += iCpuUage[i];  
    41       }  
    42       iAverage = dwSum / IDLE_COUNT;  
    43   
    44       if(iPreAverage != iAverage)  
    45       {  
    46         iPreAverage = iAverage;  
    47       }  
    48       RETAILMSG(1,(TEXT("CPU used is:%d%%
    "),100 - iAverage));  
    49       csInfo.Format(L"CPU used is:%d%%.",100 - iAverage);  
    50   
    51       break;  
    52     }  
    53   }  
    54 }  
  • 相关阅读:
    课后作业成绩汇总
    关于作业提交要求声明 2017-09-22
    团队编程项目作业成绩汇总
    结对项目作业成绩汇总
    团队组信息
    小知识记录:第XI篇
    小知识记录:第X篇
    小知识记录:第十二篇
    小知识记录:第十一篇
    小知识记录:第十篇
  • 原文地址:https://www.cnblogs.com/91program/p/5206474.html
Copyright © 2020-2023  润新知