共有3185人关注过本帖树形打印复制链接

主题:[求助]wince应用程序导致CPU负载很高

客人
  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负载上升又下降,这个不好分析,只有看具体代码才好分析原因。


  单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

[求助]wince应用程序导致CPU负载很高

用户名:          
内容:
               签名