epoll使用简单分析

来源:互联网 发布:宏观经济数据网 编辑:程序博客网 时间:2024/05/23 20:32

前面说了下select和poll的优缺点及使用,现在说说linux最新的epoll机制,同样,如有不足或错误之处,还请各位道友指导

epoll机制共有三个函数:

  1. epoll_create(int size):创建一个epoll实体,size是提示内核内部结构的大小,并无大碍(size在linux kernel 2.6.8后自动分配)
  2. epoll_ctl():控制相应的套接字的行为
  3. epoll_wait():等待套接字就绪并返回相应的就绪套接字集合(注意:这才是真正强大的地方)

关于更详细如何使用,这有位大神写的《彻底学会epoll》系列:http://blog.chinaunix.net/uid-28541347-id-4273856.html
他写的非常详细,我就在说了,不过还是要说下epoll相对select/poll他们的优势及不足

优点:

  1. 能够监听相当大数目的套接字连接
  2. 它返回的是活动的套接字集合,而你不必像select/poll哪样再去轮循所有的套接字去找出活动的套接字
  3. 相比与select/poll复制套接字集合到内核空间,epoll使用mmap(内存映射)技术,直接省去了复制的步骤

不足:

  1. epoll只被linux所独自采用,可移植性受限
  2. epoll每次调用epoll_ctl都是牵扯到系统调用,如果是在许多短连接的话,epoll可能比select/poll还慢

基本就是这样,在选择select/poll/epoll机制的过程中,要分析服务的链接情况,再去做最佳的选择打算

0 0
原创粉丝点击