当前位置:  技术问答>linux和unix

tcp中使用recv函数cpu占用率99%

    来源: 互联网  发布时间:2016-09-09

    本文导语:  在LINUX下编程,平台ARM9,客户端现在使用recv(read)接收数据线程,只要这个线程启动此线程cpu占用率就到99%,recv不是阻塞式的吗。改用selcet也一样,不知道为什么,我服务器端用相同的代码cpu占用率很低。太郁闷了...

在LINUX下编程,平台ARM9,客户端现在使用recv(read)接收数据线程,只要这个线程启动此线程cpu占用率就到99%,recv不是阻塞式的吗。改用selcet也一样,不知道为什么,我服务器端用相同的代码cpu占用率很低。太郁闷了。下面是我的代码请高手指教。
while(ture)
{

FD_ZERO(&rfds);
FD_SET(link_data->para.fd,&rfds);
if (select(1 + link_data->para.fd, &rfds, NULL,NULL,&tv) > 0)
{
if(FD_ISSET(link_data->para.fd,&rfds))
{
//len = recv(link_data->para.fd, &link_data->frame, 

LINK_FRAME_LEN, 0);
len = read(link_data->para.fd, &link_data->frame, 

LINK_FRAME_LEN);
if(len > 0)
{
analyse_link_data(link_data, len);

}
else if(len  para.fd  != -1)
{

close(link_data->para.fd);
link_data->para.fd = -1;
link_data->para.call_status = CALL_FREE;

}
ture = 0;
}
}
}

}

|
把analyse_link_data()置成空函数看一下,看性能瓶颈在哪里

|
每次select都需要重置tv值

|
你确定是这个线程本身占用了大量的CPU时间?

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求救怎样使用libnet实现TCP的封堵技术!!!!
  • 使用 iplanet directoty Server 必须要安装 TCP/IP 吗?
  • linux支持ti-rpc么?ti-rpc在linux中是不是只使用udp协议,不能使用tcp协议
  • 使用TCP传输文件,文件传输成功了,大小也一样,但无法打开
  • 请问使用TCP/IP时,服务器阻塞的问题。(在线讨论)!!
  • 在Linux下同时使用5000个TCP连接的问题
  • 请问RST在什么情况下发送?? 使用TCP socket编程的话是否会引起这种TCP包的发送?
  • 使用tcp协议发送数据, 如果获得系统底层将包发到客户端之间的耗时?
  • tcp_v4_rcv函数的困惑 iis7站长之家
  • linux下使用tcp传送二进制文件跟文本文件一样吗?
  • 在linux下或者windows下,如何发带vlan tag的tcp,udp,arp包。用啥工具,请详细说明使用方法。求教
  • 如何在UNIX 和 WINDOWS 平台之间进行数据传输,使用TCP/IP 通信协议
  • 为什么使用iptables -A INPUT -p tcp --dport 7777 -j DROP指令后,只是过滤端口而不是关闭?
  • 求一个使用tcp协议传送类似数据库表的二维数组的例子。每条记录上的字段数据类型不一定一样。
  • 如何使用iptable为某个ip开放TCP22、1521、80(仅Web)端口
  • python网络编程之TCP通信实例和socketserver框架使用例子
  • 使用TCP,在客户端怎么知道建立好的连接已经断开?怎么用非阻塞模式,以及怎么知道socket已经收到数据并立即将数据读出?
  • 对socket使用select(max_fd,&rd_set,&wr_set,&er_set,&timeout);当服务端断开TCP连接,客户端就会崩溃。怎么解决?谢谢
  • Linux 父子进程使用TCP连接通信connect错误
  • java命名空间java.net接口socketoptions的类成员方法: tcp_nodelay定义及介绍
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • Linux内核中影响tcp三次握手的一些协议配置
  • 100分求《嵌入式系统Web服务器—TCP/IP Lean》或《TCP/IP Lean Web Servers for Embedded Systems 》
  • TCP协议报头字段详解及报头图
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • 对TCP协议状态及状态转换理解
  • tcp_prequeue_process怎么调用了tcp_v4_do_rcv的??求解??在tcp_recvmsg调用的
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 请问怎么知道每个TCP连接所属哪个进程??还有怎么样断开系统中任意一个TCP连接?
  • TCP协议三次握手过程详解
  • 求助!!!linux tcp发送 xp tcp接收 出现的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3