当前位置: 首页 > article >正文

epoll函数为何是高效率的

1) epoll 精巧的使用了 3 个方法来实现 select 方法要做的事,分清了频繁调用和不频繁调用的操作。

epoll_ctl 是不太频繁调用的,而 epoll_wait 是非常频繁调用的。而 epoll_wait 却几乎没有入参,这比 select 的效率高出一大截,而且,它也不会随着并发连接的增加使得入参越发多起来,导致内核执行效率下降。

2) mmap 的引入,将用户空间的一块地址和内核空间的一块地址同时映射到相同的一块物理内存地址(不管是用户空间还是内核空间都是虚拟地址,最终要通过地址映射映射到物理地址),使得这块物理内存对内核和对用户均可见,减少用户态和内核态之间的数据交换。

3)红黑树将存储 epoll 所监听的 FD。高效的数据结构,本身插入和删除性能比较好,时间复杂度O(logN)。


http://www.kler.cn/a/510717.html

相关文章:

  • 与专业舆情优化公司合作是品牌化解舆情危机的重要途径
  • Oracle数据库传统审计怎么用
  • cuda + cudnn安装
  • java使用poi-tl自定义word模板导出
  • ToDesk设置临时密码和安全密码都可以当做连接密码使用
  • GPT-5 传言:一场正在幕后发生的 AI 变革
  • 专业数据分析不止于Tableau,四款小众报表工具解析
  • re:Invent 2024 - CEO 主题演讲与 Matt Garman (前半)
  • PyTorch使用教程(9)-使用profiler进行模型性能分析
  • Kivy App开发之UX控件TabbedPanel选项面板
  • mysql官方文档翻译01-innodb多版本并发控制
  • Docker镜像配置
  • 物联网平台介绍
  • Ubuntu更改apache的服务端口
  • 登录认证(1):登录的基本逻辑及实现思路
  • mybatis xml sql
  • 【C++】结构体(下)
  • 【专题二 二叉树中的深搜】98. 验证二叉搜索树
  • 免费使用 Adobe 和 JetBrains 软件的秘密
  • 【Linux系统编程】—— 进程与进程管理在Linux中的基本概念
  • AI 行业新动态
  • 1.13-1.19
  • 【Spring Boot】掌握 Spring 事务:隔离级别与传播机制解读与应用
  • 数据结构(Java版)第十期:栈和队列(一)
  • 【Django】多个APP设置独立的URL
  • 基于ChatGPT的论文写作辅助工具研究