免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2766 | 回复: 4
打印 上一主题 下一主题

请问单线程接收数据的处理能力如何? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-15 08:03 |只看该作者 |倒序浏览
最近把windows下一个p2p流媒体的程序移植到linux上
windows的程序使用的是完成端口进行网络传输,性能表现很好
我在linux下使用的是epoll
接收那里大体上就是单线程epoll_wait {  recv()   };
现在局域网内测试,发现程序运行一段时间后似乎接受数据的速度不能满足播放器的需要,windows下是没有这个问题的
windows下的完成端口使用了3个线程异步WSArecv
我在linux下的程序中还有其他7,8个线程处理别的事务,现在我开始怀疑是不是单线程同步recv的处理能力跟不上,当然也有可能是别的地方出现问题....
请教各位,有没有这方面经验的介绍一下,当接受数据量很大的时候单线程recv的处理能力能否满足?

论坛徽章:
0
2 [报告]
发表于 2007-05-15 09:08 |只看该作者
recv 的 速度 肯定 足够快, 问题是后续 处理的 速度, 后续处理 也在recv 线程内?

论坛徽章:
0
3 [报告]
发表于 2007-05-15 09:30 |只看该作者
是在一个线程里 ,不过只是把接收到的数据处理一下放到对应的地方,主要是对指针进行操作的,没拷贝多少内存,应该不耗费什么资源

论坛徽章:
0
4 [报告]
发表于 2007-05-15 13:50 |只看该作者
那可能是你那其他7,8个线程占用了太多得cpu资源

论坛徽章:
0
5 [报告]
发表于 2007-05-15 14:34 |只看该作者
发现错误了。。
是时间控制有问题,导致放弃了很多收到的包,请求序列也就搞错了。。。
初步测试在我这个程序里数据接受能力还是够的
多谢上面几位
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP