之前写程序的时候一直没有主动注意CPU占用的问题,今天在进行RTSP服务端测试的时候发现只是接入了一两个连接,CPU的占用率已经达到了100%,吓死我了~虽然之前已经预料到CPU占用会很高,但实际测试结果还是让我出了一身冷汗,这样的程序怎么能够发布使用呢?应该逐渐关注程序性能算法优化这方面的问题。当然,导致CPU占用率如此之高的元凶就是程序中的几个while(true)死循环。
用代码解释如下:
改进之后:while(true){
//your code
}
其实就是添加了一句“Sleep(1)”,但是CPU占用率就直接从100%跌到了1%左右。while(true){
Sleep(1);
//your code
}
Sleep()是Windows API线程调度相关的函数,将当前线程置入等待状态,并让它等待一段指定的时间间隔(以毫秒ms为单位),零值表示放弃该线程时限的剩余部分。
Comments:CPU是以纳秒级单位运转的!