请问各位做程序的朋友们,你们做的程序CPU占用率一般都为多高啊?
我做了个程序,有4到5个大循环,都是开了线程的,运行起来CPU占用率达到50%,不知道正常不,或者说身为程序员的我们,能否对这样的效率视而不见?

解决方案 »

  1.   

    线程中加Sleep来降低CPU,同时优化,防止死循环.
      

  2.   

    嗯,有朋友回帖了,谢谢。
    我说个情形,比如我需要不停去查询一个数据队列,如果有数据,则进行处理,如果没有,则继续循环。
    现在问题是,数据何时会有,有多少,都是未知数,而为了能及时处理数据,我并不想在循环里加入sleep,请问对于这种情形,有没有什么好的解决方法?
      

  3.   

    Sleep就是你希望达到的频率,可以动态调整。总会有一个抽样间隔.
      

  4.   

    看了你的回复后,我下午仔细研究了一下循环,优化了代码,把无用的循环处理了后,我的程序跑起来CPU占用率几乎为0,而且性能上和数据处理的效率上几乎无任何损失。
      

  5.   

    嗯,我非常同意你们的观点。
    再问一个问题,我看windows消息循环似乎就是一个轮询啊,为什么它的性能却很好呢?当然我不知道底层处理,我对它的处理机制不懂,有没有懂的人解释一下? while (GetMessage(&msg, NULL, 0, 0))
    {
    if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    }
      

  6.   


    GetMessage(&msg, NULL, 0, 0)  没消息 会放弃cpu的...