主题:[求助]wince应用程序导致CPU负载很高 共有41124人关注过本帖 |
---|
客人 |
1楼 |
[求助]wince应用程序导致CPU负载很高 Post By:2018-1-18 9:54:00 [只看该作者]
我做了一个MFC的wince应用程序,发现我的程序跑了十多个小时后,CPU负载居然高到了80%,之后CPU负载却又开始缓慢下降。一直觉得很奇怪,大家遇到过这种问题吗?或者有什么修改建议? |
|
单帖管理 | 引用 | 回复 |
yy |
2楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2018-1-18 10:07:00 [只看该作者]
http://www.emtronix.com/article/article2015953.html 你用sysinfo查一下你程序占的CPU资源。系统静默状态下CPU占用只有2%左右,所以这80%应该大部分是你的程序占用的。如果你的程序数据处理量并不大,那么可能需要优化一下代码,降低程序的系统消耗。 |
单帖管理 | 引用 | 回复 |
客人 |
3楼 |
Post By:2018-1-18 12:56:00 [只看该作者]
我知道CPU占用率高确实是我的程序问题,我比较纠结的是什么问题会导致这种现象。 如果存在死循环或者其他CPU资源不被释放的情况,那应该是CPU负载一直上升直到程序卡死,但是我这个CPU负载上升到一定程度后,又开始缓慢下降是为什么呢? |
|
单帖管理 | 引用 | 回复 |
yy |
4楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2018-1-18 17:21:00 [只看该作者]
最简单一段代码,如果死循环,比如for(;;)i++;就能让CPU负载100%,你应该是程序里面有死循环。 不要在程序里面做死循环,适当加上sleep语句释放CPU资源。 不要用死循环轮询的方式去检测是否有数据接收,用事件的机制,检测到接收事件后再进行处理。 你说的CPU负载上升又下降,这个不好分析,只有看具体代码才好分析原因。 |
单帖管理 | 引用 | 回复 |