问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

杂谈:select和poll的Linux内核实现(TCP场景)

发布网友 发布时间:2024-09-26 07:50

我来回答

1个回答

热心网友 时间:2024-11-14 04:55

理解TCP场景下的select和poll实现,有助于我们深入掌握这两个系统调用的性能差异。首先,select的用户态使用涉及fd_set数组,作为读、写和异常通道,同时支持超时和定时器功能。内核实现中,select需要在内核态为每个通道申请空间,这可能导致效率相对较低,特别是当涉及大量socket时。

poll与select类似,但使用链表而非数组,避免了不必要的遍历,提高了性能。然而,链表的动态内存分配和用户态与内核态之间的数据拷贝,仍然是性能瓶颈。相比之下,epoll的高效主要在于其将ready的socket存储在自己的列表中,避免了每次唤醒时的遍历,减少了系统开销。

在实际场景中,对于大量socket的监控,select和poll可能会显得效率低下。而当socket数量较少且分布稀疏时,poll可能是个不错的选择。对于非稀疏且句柄位置靠前的情况,select可能会展现出较好的性能,因为它在某些情况下可以避免额外的句柄消耗。总体来说,选择哪种方法取决于具体的应用需求和性能考虑。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样备份iPhone的照片? 奇迹的战士怎样加点? 奇迹私服战士8W点的怎么加点PK厉害 房屋装修建材的选购家装建材种类有哪些 家装建材都包含什么 家装应该买什么东西 劓刑简介 电信手机停机保号怎么办理? 定胆定胆方法 3d定胆方法有哪些? 「Linux」——select和epoll详解 《宝可梦朱紫》自动战斗怎么用? 《蒙娜丽莎》真品在哪里珍藏? 20万能移民哪个国家 移民欧洲哪个国家最便宜 欧洲哪个国家移民最好 山田凉介与知念侑李共同唱的歌曲名叫什么来着? 山田凉介和中岛裕翔唱的歌曲罗马音 自学考试 学位英语报名 填写入学时间写自考报名时间么 山田凉介 2011 summery solo时 露背黑色装时转过头来唱的歌曲是什么?歌... 怎么才能吸引到蝴蝶? 蝴蝶为什么会围绕在我身边?? 怎么让蝴蝶飞在身边 R9plus呼吸灯怎么开呀,大神帮帮忙,OPPO牌子的。 oppor9plus呼吸灯怎么打开,设置?一起问我 被特警误打了 急求帮助!!! 格力空调制冷时有热风是怎么回事? 格力空调制冷为什么出热风? 红豆薏米真的可以除湿热吗 薏仁红豆茶骗局(真的有用吗?) 让你彻底明白select、poll 和 epoll 之间的区别 1.2.1 sleep,usleep,select,nonasleep对比与应用 99年昆仑山之事是真的吗神仙下凡历劫怎么回事 1999年被贬下凡的神仙中有没有你呢 1999年被贬下凡的神仙是谁神仙下凡该怎么判断 暗黑1.10怎么BUG杀BOSS? 暗黑2BUG杀督瑞尔(虫子) 三律是什么 三律指什么 家法三律是什么意思? 政治三律是什么意思? 家里养狗有跳慅了用滴滴味喷行吗 什么是底盘松散? 轿车底盘松散怎么办? 想通过ajax将json中的数据提取出来 后端怎么把json数据拿出来(jsonp后端怎么处理) 钛金 釉金 铂金 实车哪个颜色好看 俄罗斯历史上都出现了哪些朝代 俄罗斯历史朝代顺序俄罗斯历史朝代顺序表 俄罗斯姑娘究竟有多开放?