linux下网络编程:select异步通信的效率问题(二)

来源:互联网 发布:淘宝怎么复制淘口令 编辑:程序博客网 时间:2024/06/01 09:56

接上回。

猜想2.rhel5.5上,select随着FDSET的增大,处理时间远高于线性增长。

以上猜想是正确的。

主要的cpu时间耗费在对FDSET中所有端口遍历和查找处理函数。

例如FDSET中包含50个端口,其中一个端口被触发。程序需要遍历所有端口,以找出那个端口被触发。然后在查找对应的处理函数。


正确的处理方式是使用完成端口IOCP(on windows),epoll(on linux)。

这种方式下只返回被触发端口,操作系统内核优化了cpu运行时间。

原创粉丝点击