while(true)循环与CPU占用率问题
2013-07-18 16:00
295 查看
之前写程序的时候一直没有主动注意CPU占用的问题,今天在进行RTSP服务端测试的时候发现只是接入了一两个连接,CPU的占用率已经达到了100%,吓死我了~虽然之前已经预料到CPU占用会很高,但实际测试结果还是让我出了一身冷汗,这样的程序怎么能够发布使用呢?应该逐渐关注程序性能算法优化这方面的问题。当然,导致CPU占用率如此之高的元凶就是程序中的几个while(true)死循环。用代码解释如下:while(true){
//your code
}
改进之后:while(true){
Sleep(1);
//your code
}
其实就是添加了一句“Sleep(1)”,但是CPU占用率就直接从100%跌到了1%左右。Sleep()是Windows API线程调度相关的函数,将当前线程置入等待状态,并让它等待一段指定的时间间隔(以毫秒ms为单位),零值表示放弃该线程时限的剩余部分。Comments:CPU是以纳秒级单位运转的!
//your code
}
改进之后:while(true){
Sleep(1);
//your code
}
其实就是添加了一句“Sleep(1)”,但是CPU占用率就直接从100%跌到了1%左右。Sleep()是Windows API线程调度相关的函数,将当前线程置入等待状态,并让它等待一段指定的时间间隔(以毫秒ms为单位),零值表示放弃该线程时限的剩余部分。Comments:CPU是以纳秒级单位运转的!
相关文章推荐
- while(true)循环与CPU占用率问题
- while(true)循环与CPU占用率问题
- while(true)循环与CPU占用率问题
- while(true)循环与CPU占用率问题
- PHP 防止 while true循环 CPU 使用率过高的方法
- 关于win8系统开机后cpu占用率过高的问题
- 云服务器 ECS Linux 系统 CPU 占用率较高问题排查思路
- C++ Primer 关于while(cin>>word) 退出循环问题
- Linux 多线程调试(内存占用、死循环、CPU占用率高……)
- 【java基础】解决Java中 while(Scanner.hasNext())一直为死循环的问题!
- 巧用while(true){ }死循环的一个小例子
- windows系统中CPU已满占用率100%问题的解决方案
- 关于执行rsh后while不能循环的问题
- shell 脚本中while 循环只执行一次的问题
- 怎样定位CPU占用率高的问题
- Linux 系统 CPU 占用率较高问题排查思路
- c# 程序一直运行着,CPU占用率高的问题。
- java应用CPU占用率过高问题的分析
- 用for循环或while循环来解决百钱买百鸡问题
- while(scanf(“%d%d”,&a,&b)!=EOF)循环无法退出问题