用ACE Proactor 框架做的服务端程序,为什么CPU占用率100%?

honeychen 2008-10-17 02:11:32
用ACE库做一通信程序,使用异步Acceptor模式实现服务端,为什么程序一运行,CPU占用率就到了100%?
我是在一单独的线程中运行Proactor::instance()->proactor_run_event_loop()的;
看了一下ACE中proactor_run_event_loop()函数实现,有类似如下代码:
for(;;){op();}
一直在循环,CPU占用率100%应该和它有关吧?这正常吗?如何解决。
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
blackcat242 2008-10-19
  • 打赏
  • 举报
回复
如果没有数据发送或者接收的话,是不会占用这么多的,应该是其他问题。
如果接收发送的数据量很大很集中,那么debug的有可能会到达100%,release一般也就50%,这个我在自己机器上做过测试,性能还是很不错的
laibach0304 2008-10-19
  • 打赏
  • 举报
回复
如果找不到用动态分析工具查一下哪个函数占用时间最长。就是那个了
dch4890164 2008-10-17
  • 打赏
  • 举报
回复
op()
这个函数是做什么的,不出意外地话
你应当是发现了它的bug 去它的开源网站上查查有没有更新
僵哥 2008-10-17
  • 打赏
  • 举报
回复
死循环当然会占完某一个CPU核心的所有CPU资源.

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧