EasyDarwin开源流媒体服务器性能优化之Work-stealing优化方案
本文转自EasyDarwin开源团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/52400226
EasyDarwin团队的Babosa对EasyDarwin流媒体服务器的性能瓶颈进行了分析,并提出了优化方案。EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计
这里,根据Babosa提出的优化方案,以及Work-stealing的算法特性,提出用Work-stealing算法对EasyDarwin进行优化。
什么是Work-stealing?
工作窃取(work-stealing)算法是指某个线程从其他队列里窃取任务来执行。
图片出自 java7里的fork-join
EasyDarin优化方案
不区分TaskThread,将BlockingTaskThread和ShortTaskThread统一;
实现一个双端队列,支持LIFO的push、pop,FIFO的take;
当前TaskThread使用LIFO处理最新的Task,空闲的TadkThread使用FIFO处理尾部任务;
空闲TaskThread窃取任务失败,继续重试,直到所有的TaskThread处理完所有的Task。
参考资料
http://www.cnblogs.com/qicosmos/archive/2015/11/18/4975454.html
http://gee.cs.oswego.edu/dl/papers/fj.pdf
http://supertech.csail.mit.edu/papers/steal.pdf
获取更多信息
Github:https://github.com/easydarwin
邮件:support@easydarwin.org
WEB:www.EasyDarwin.org
Copyright © EasyDarwin.org 2012-2016
EasyDarwin开源流媒体服务器性能优化之Work-stealing优化方案相关推荐
- EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法
EasyDarwin开源流媒体服务器(www.easydarwin.org),拉转推是一个很有意义的功能,它可将一个独立的RTSP数据源"拉"到服务器,再通过转发协议转发给多个客户 ...
- EasyDarwin开源流媒体服务器
主要功能特点 基于Golang开发维护: 支持Windows.Linux.macOS平台: 支持RTSP推流分发(推模式转发): 支持RTSP拉流分发(拉模式转发): 服务端录像 参考:EasyDar ...
- 多媒体视频开发_(6) EasyDarwin开源流媒体服务器程序搭建
EasyDarwin开源流媒体服务器程序搭建 https://winqi.cn/120.html
- EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计
EasyDarwin现有架构介绍 EasyDarwin的现有架构对网络事件的处理是这样的,每一个Socket连接在EasyDarwin内部的对应存在形式就是一个Session,不论是RTSP服务对应的 ...
- EasyDarwin开源流媒体服务器内存管理优化
-本文由EasyDarwin开源团队成员Fantasy贡献 前言 最近在linux上跑EasyDarwin发现一个很奇怪的问题,当有RTSPSession连接上来的时候,发现进程的虚拟内存映射一下就多 ...
- 基于EasyDarwin开源流媒体服务器框架实现EasyNVR H5无插件直播流媒体服务器方案
背景分析 在之前的一篇博客<web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!>中,描述了实现一套H5无插件直播方案的各个组件的参考建议,又在博客<EasyNVR H5流媒体服 ...
- EasyPusher安卓直播推流到EasyDarwin开源流媒体服务器工程简析
EasyPusher主要有三部分组件组成:采集,编码,叠加,上传.在这个基础上同时支持本地存储\后台预览的功能.主要业务模块与相关类之间的关系如图所示: Created with Raphaël 2. ...
- EasyDarwin开源流媒体服务器进行RTSP转发过程中将sdp由文件存储改成内存索引
-本篇由团队成员Fantasy供稿! 原始版本 在Darwin Streaming Server版本中,推送端DoAnnounce的时候后服务器会根据easydarwin.xml中配置的movies_ ...
- EasyDarwin开源流媒体服务器如何实现按需推送直播的
--本文转自EasyDarwin开源团队成员邵帅的博客:http://blog.csdn.net/ss00_2012/article/details/51441753 我们使用EasyDarwin的推 ...
最新文章
- 51CTO完成B轮融资,围绕1400万社区用户的IT学习平台要怎么做?
- WebGIS中地图恢复初始位置及状态
- 深入理解JVM原理之编译openjdk7
- 昨天终于收到《.Net Web服务编程》
- android root工具twrp,安卓手机没有twrp的情况,如何下刷入magisk并获得root权限.
- comcerter无法识别串口_基于FPGA 的MXN维字符识别的实现
- 画王八java代码参数_java画乌龟源代码-郭遥航.doc
- java pdf水印排布问题_java 实现 PDF 加水印功能
- In-Stream Big Data Processing
- 魏兴华_ORACLE优化器革命漫谈
- Arduino驱动的安装
- Oracle简单SQL语句(详细!!!)
- mfc中CImageList的使用
- WEBSHELL权限提升技巧
- CAD转JPG图片,在线转换成高质量彩色图片
- 电气成套设备远程监控应用
- vue壁纸网站源码 自适应手机端 自动采集360壁纸接口
- 笨方法学Python 习题 42: 对象、类、以及从属关系
- 恶俗:或现代文明的种种愚蠢读后感
- PHP 获取微信小程序用户手机号