码迷,mamicode.com
首页 > 其他好文 > 详细

Select和epoll的区别

时间:2014-09-24 00:58:35      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   使用   ar   strong   div   sp   art   

http://blog.csdn.net/mafuli007/article/details/7233304

 

epoll的优点:

<1>支持一个进程打开大数目的socket描述符(FD)
select 最不能忍受的是一个进程所打开的FD是有一定限制的
 
<2>IO效率不随FD数目增加而线性下降
传统的select/poll另一个致命弱点就是当你拥有一个很大的socket集合,不过由于网络延时,任一时间只有部分的socket是"活跃"的,但是select/poll每次调用都会线性扫描全部的集合,导致效率呈现线性下降。
 
epoll不存在这个问题,它只会对“活跃”的socket进行操作。
这是因为在内核实现中epoll是根据每个fd上面的callback函数实现的。那么,只有"活跃"的socket才会主动的去调用 callback函数,其他idle状态socket则不会
 
<3>使用mmap加速内核与用户空间的消息传递这点实际上涉及到epoll的具体实现了。无论是select,poll还是epoll都需要内核把FD消息通知给用户空间,如何避免不必要的内存拷贝就 很重要,在这点上,epoll是通过内核于用户空间mmap同一块内存实现的

Select和epoll的区别

标签:blog   http   io   使用   ar   strong   div   sp   art   

原文地址:http://www.cnblogs.com/notlate/p/3989527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!