开源流媒体服务器EasyDarwin支持epoll网络模型,大大提升流媒体服务器网络并发性能...

news/2024/7/9 17:05:08 标签: epoll

经过春节前后将近2个月的开发和稳定调试、测试,EasyDarwin开源流媒体服务器终于成功将底层select网络模型修改优化成epoll网络模型,将EasyDarwin流媒体服务器在网络处理的效率上提升到了另一个档次(这里得感谢EasyDarwin开源团队成员Fantasy的无私贡献,是他牺牲宝贵的业余休息时间,连夜奋战开发和调试,才能取得EasyDarwin底层改造的成果)。

众所周知,select模型在处理大并发量的网络请求上具有一些瓶颈,默认在Linux上同时能够处理的网络连接数FD_SETSIZE为1024,虽然可以通过修改FD_SETSIZE的定义大小,但在FD_SETSIZE大于1024时,由于select模型先天的原因,对网络事件无法做到及时准确定位,其处理性能上并没有得到同步的提升,所以,带来的就是整个流媒体服务器在并发量上的瓶颈;而修改成epoll网络模型之后,其网络事件的处理性能得到提升,再加上EasyDarwin架构上的优势,采用线程池,任务队列及Reactor技术,使得网络事件能够非常高效地被感知、处理(这里的任务队列还涉及到一个无锁队列的优化,这个在后续的博客中会具体分析),这样,使得整个EasyDarwin流媒体服务器具有非常高效的事件处理能力,而且经过长时间的测试,稳定性非常好!

需要说明的是,EasyDarwin在Windows端还是沿用的select网络模型,从目前的情况上来看,大并发量需求的项目多数部署在Linux系统上,Windows上EasyDarwin作为小规模或者研究型项目,完全能够满足需求,所以,将EasyDarwin+IOCP列入以后的开发计划中;

Epoll模型主要的代码在EasyDarwin Github上,目录位置在:https://github.com/EasyDarwin/EasyDarwin/tree/master/CommonUtilitiesLib,主要文件是:epollEvent.h和epollEvent.cpp

EasyDarwin开源流媒体服务器项目还在一直进行更加高性能的优化,项目地址:https://github.com/EasyDarwin


关注EasyDarwin开源项目:

WEB: www.easydarwin.org

Github: https://github.com/easydarwin


转载于:https://www.cnblogs.com/babosa/p/5904670.html


http://www.niftyadmin.cn/n/1025094.html

相关文章

国际站运营入门-标题的书写和优化操作

本文只针对产品标题这块,不对关键词,自然排名,直通车操作,优化...等进行展开叙述。后续会针对特定的操作进行单独讲解。本文只适用于入门以及初级运营做参考。 一、为什么要写专门去说标题书写这块 很多人都会遇到一个问题&…

APP强制退出

第一种方法: 企业版可以用,Appstore可能被拒,慎用 1 - (void)exitApplication {2 3 AppDelegate *app [UIApplication sharedApplication].delegate;4 UIWindow *window app.window;5 window.backgroundColor [UIColor re…

淘宝运营如何用收集关键词组合标题

[选择搜索流量又准又多的关键词的方法] 1.生意参谋-选词助手 生意参谋中,打开流量中的选词助手。里面有店铺引流搜索词和行业相关搜索词,可以作为词库参考。 2.行业热词榜 生意参谋中,打开“市场行情”选择“行业热搜词”,这里面的…

选择本地图片上传到服务器进行头像设置以及文件下载

需要实现的协议 interface RegistController ()<UIImagePickerControllerDelegate, UINavigationControllerDelegate> 1 - (void)postHeadImage{2 //打开 图片的用户交互3 self.headimageView.userInteractionEnabled YES;4 5 //创建一个点击手势6 …

B2B关键词调研:如何精准地定位B端客户?(下)

在外贸推广上&#xff0c;选择合适的关键词&#xff0c;说白了&#xff0c;就是选择合适的线上战场。 如果你是做B2B生意的&#xff0c;却一直用B2C关键词去定位客户&#xff0c;那说明你跑错片场了&#xff0c;当然是花钱如流水&#xff0c;但效果却微乎其微。 在上一篇即《…

mysql配置文件相关

1 在哪里找配置文件 mysqld --verbose --help | grep -A 1 Default options 2 配置文件中都用小写&#xff0c;单词之间用下划线和短横线隔开是等效的&#xff0c;不过一般用下划线 转载于:https://www.cnblogs.com/noway-neway/p/5203796.html

闲鱼运营小结

作者&#xff1a;凸峰致知 【谢邀】&#xff0c;闲鱼老韭菜给你一点“人森的经验”&#xff0c;总结一下、一共六点&#xff1a; ① 每天早上第一件事&#xff0c;【擦亮】- 你的及时擦亮提升宝贝的曝光率 ② 客户评论、私信&#xff0c;第一时间&#xff0c;【回复】- 你…

ANDROID_MARS学习笔记_S03_006_geocoding、HttpClient

一、简介 二、代码1.xml(1)AndroidManifest.xml 1 <uses-permission android:name"android.permission.ACCESS_FINE_LOCATION"/> 2 <uses-permission android:name"android.permission.ACCESS_COARSE_LOCATION"/> 3 <uses-perm…