程序控制cpu占用率介绍

如题所述

我们知道任务管理器每一秒钟刷新一次,这就要在这一秒钟内,使CPU的平均使用时间和空闲时间各占50%. 而不是让CPU使用1秒钟,空闲一秒钟。windows的调度时间片为10ms, 那么在编程时可以让cpu不停的工作10ms, 然后空闲10ms, 空闲操作通过sleep(10)来实现。这样最后任务管理器在刷新CPU占用率的时候就会得到这个一秒钟内的CPU的平均使用率。显示出50%的水平。
通过空循环,来让cpu保持繁忙的工作状态,通过sleep使cpu空闲。机器指令最接近的是汇编语言。而空的for 循环,换成汇编语言是大概5句,现在的CPU可以在一个时钟周期执行两个机器指令,相当于执行两个汇编语句。
现在假设电脑的主频是3.2G,则每秒可以执行  3200000000*2/5=1280000000条空循环语句。 应该分时间片的执行一个时间片10ms, 所以执行空循环应该为12800000次。
因此用C语言可以这样编写程序:
#include  
   #include
int main(int argc, char *argv[])
   {
     long n=12800000; //n表示执行的空循环次数
     int i=0;
     while(1)
     {
 for(i=0;i
 {
     //空循环
 }
 sleep(10);
     }
     system("PAUSE");   
     return 0;
   }
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网