CPU的使用率是表示什么的呀,为什么在C++里加个消息处理死循环可正常运行,并且CPU使用率也不很高,而用VB时有死循环则是程序错误,并且CPU 占用率狂高。CPU里不一直跑指令吗?那使用率是表示什么的?

解决方案 »

  1.   

    消息循环的GetMessage函数,在等待消息的过程中是基本不占用CPU时间的,所以CPU使用率不高。
      

  2.   

    你试试下面的代码与不加sleep比较CPU占用率
    while(1)
    {
       printf("hello world\n");
       Sleep(10);
    }
      

  3.   

    代码比较过了,加上延时后CPU使用率为0,不加延时略高。但还是不太清楚为什么,什么样的代码会使CPU使用率高,Sleep(10)时CPU干什么了
      

  4.   

    打个比方:
    假设CPU每秒能够执行1亿行代码。上述代码中,不加Sleep,CPU每秒执行1亿行代码。 CPU使用率:1亿/1亿=100%
    而Sleep的功能是休息10毫秒,这样CPU每秒只执行100行代码。CPU使用率:100/1亿=0.0001%不知楼主理解了没有?
      

  5.   

    10毫秒相对人来说,感觉特别短。
    但对CPU而言,他是一个非常漫长的时间段。
    打个比方,相当于人对1年时间的感觉。