设为首页 加入收藏

TOP

select 和 epoll区别
2012-08-26 14:15:08 】 浏览:2069
Tags:select epoll 区别
最近有朋友在面试的时候被问了select 和epoll效率差的原因,和一般人一样,大部分都会回答select是轮询、epoll是触发式的,所以效率高。 



 


select 模式低效是由select的定义所决定的,与操作系统实现无关,任何内核在实现select时必须做轮循,才能知道这些socket的情况,这是会消耗 cpu的。此外,当你拥有一个很大socket集的时候,尽管任一时间只有小部分的socket是"活跃"的,但每次你都不得不将所有的socket填入到一个FD_SET中,这也会消耗一些cpu,并且当select返回后,处理业务时你可能还需要做“上下文映射”,同样也会有一些性能影响,因此 select比epoll相对低效。 
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux下的多线程编程 下一篇 select, poll和epoll的区别

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目