epoll的优劣与原理

作者: 吕艳凯 | 来源:发表于2020-05-24 23:51 被阅读0次
    epoll事件驱动模型与poll的比较

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


    image.png
    epoll事件驱动模型的原理

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

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

    image.png

    相关文章

      网友评论

        本文标题:epoll的优劣与原理

        本文链接:https://www.haomeiwen.com/subject/nhasahtx.html