一个苯苯的问题!!

mongmong 2002-11-04 08:05:27
同样是非多线程条件下
非阻塞socket(winsock的消息处理)和阻塞socket相比,那个相应速度更快??
...全文
6 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeepRun 2002-11-07
和阻塞模式没什么直接关系吧。阻塞只不过等到有数据到才会返回。还需要看你用什么套接字模式。我感觉这些并不是根据相应速度来选择的。而是根据服务要求。比如是否同时对多个客户分开操作。就多个客户来说,如果考虑到CPU占用率,还使用非阻塞模式比较好,在返回0时交还CPU控制权。
回复
wwwunix 2002-11-05
对于你的情况,我认为两者速度都差不多。用非阻塞的情况可以让你的程序做其他的事,以提高整个程序的效率。而用阻塞的情况则编程相对简单。
回复
everwindforce 2002-11-05
1 当网络的带宽很大(相对于主机的处理速度),且负载较高时:
使用非锁定的方式,应该可以比较明显得提高网络i/o的速度
(主机可以在发送和接受的同时处理上一个/下一个(对应接收和发送)数据块.)
2 如果有较大的接收窗口,非锁定方式工作的效率更高(减少系统调用的次数)
3 当负载很小时,两者的性能差不多.非锁定方式更易于管理.

由于你是用单线程,即使不考虑效率,也应该至少在接收方使用非锁定方式,以避免由于发送方出现的问题导致接收进程(当然,发送进程也可能,但机会较小)僵死.
回复
everwindforce 2002-11-04
en
我想一下先.
回复
mongmong 2002-11-04
补充一下,整个连接,发送,断开的过程,数据传输量不大,可以说99%以上每次都在150K左右,而且服务器在100M网络环境下运行,而且都不使用多线程
回复
mongmong 2002-11-04
我想进行的比较是从接受连接-发送数据-断开连接这一单一过程阻塞socket和非阻塞socket之间的效率.
回复
everwindforce 2002-11-04
阻塞的方式(在发送时)对带宽利用的更充分吧.
先说一下怎么算快,不然不好比.


回复
发动态
发帖子
通信技术
创建于2007-08-27

3957

社区成员

通信技术相关讨论
申请成为版主
社区公告
暂无公告