编程学习网 > 服务器 > Linux > epoll的优劣与原理分析
2020
08-03

epoll的优劣与原理分析


epoll事件驱动模型与poll的比较

  • X轴为句柄数
  • Y轴为响应时间
  • 可以看到epoll几乎不受句柄数的增加的影响

epoll事件驱动模型的原理


epoll与poll的比较

  • epoll存储活跃的连接,每次只处理活跃的连接数量占比很小

  • poll是每次将所有的连接交给操作系统去遍历,找出活跃的连接,因此连接越多

  • 耗时越长

epoll 如何实现只处理活跃连接

  • epoll实现了eventpoll数据结构

  • 数据结构中rdlist将活跃连接存储在链表中,当网卡发送报文时,增加节点,当读取一个事件后,链表删除节点,需要得到活跃连接就只需要遍历链表

  • 数据结构中rdr使用红黑树(自平衡二叉树)将事件存储,例如:当有读事件时,就新增节点,事件复杂度为logN


扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取