page contents

epoll的优劣与原理分析

以下内容希望帮助到大家!

attachments-2020-07-lNgn6YjY5f237724b8000.png

epoll事件驱动模型与poll的比较
X轴为句柄数
Y轴为响应时间
可以看到epoll几乎不受句柄数的增加的影响

v2-a647b1a9bb95e848b0ac967c5035bd1b_720w.jpg



epoll事件驱动模型的原理


epoll与poll的比较


epoll存储活跃的连接,每次只处理活跃的连接数量占比很小
poll是每次将所有的连接交给操作系统去遍历,找出活跃的连接,因此连接越多,耗时越长


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


epoll实现了eventpoll数据结构
数据结构中rdlist将活跃连接存储在链表中,当网卡发送报文时,增加节点,当读取一个事件后,链表删除节点,需要得到活跃连接就只需要遍历链表
数据结构中rdr使用红黑树(自平衡二叉树)将事件存储,例如:当有读事件时,就新增节点,事件复杂度为logN


v2-66a988c2fe31fac5552f641a90adef40_720w.jpg


attachments-2020-07-qLKzrY675f237586d1884.jpg

  • 发表于 2020-07-31 09:43
  • 阅读 ( 1068 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章