本文转自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优化方案相关推荐

  1. EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法

    EasyDarwin开源流媒体服务器(www.easydarwin.org),拉转推是一个很有意义的功能,它可将一个独立的RTSP数据源"拉"到服务器,再通过转发协议转发给多个客户 ...

  2. EasyDarwin开源流媒体服务器

    主要功能特点 基于Golang开发维护: 支持Windows.Linux.macOS平台: 支持RTSP推流分发(推模式转发): 支持RTSP拉流分发(拉模式转发): 服务端录像 参考:EasyDar ...

  3. 多媒体视频开发_(6) EasyDarwin开源流媒体服务器程序搭建

    EasyDarwin开源流媒体服务器程序搭建 https://winqi.cn/120.html

  4. EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计

    EasyDarwin现有架构介绍 EasyDarwin的现有架构对网络事件的处理是这样的,每一个Socket连接在EasyDarwin内部的对应存在形式就是一个Session,不论是RTSP服务对应的 ...

  5. EasyDarwin开源流媒体服务器内存管理优化

    -本文由EasyDarwin开源团队成员Fantasy贡献 前言 最近在linux上跑EasyDarwin发现一个很奇怪的问题,当有RTSPSession连接上来的时候,发现进程的虚拟内存映射一下就多 ...

  6. 基于EasyDarwin开源流媒体服务器框架实现EasyNVR H5无插件直播流媒体服务器方案

    背景分析 在之前的一篇博客<web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!>中,描述了实现一套H5无插件直播方案的各个组件的参考建议,又在博客<EasyNVR H5流媒体服 ...

  7. EasyPusher安卓直播推流到EasyDarwin开源流媒体服务器工程简析

    EasyPusher主要有三部分组件组成:采集,编码,叠加,上传.在这个基础上同时支持本地存储\后台预览的功能.主要业务模块与相关类之间的关系如图所示: Created with Raphaël 2. ...

  8. EasyDarwin开源流媒体服务器进行RTSP转发过程中将sdp由文件存储改成内存索引

    -本篇由团队成员Fantasy供稿! 原始版本 在Darwin Streaming Server版本中,推送端DoAnnounce的时候后服务器会根据easydarwin.xml中配置的movies_ ...

  9. EasyDarwin开源流媒体服务器如何实现按需推送直播的

    --本文转自EasyDarwin开源团队成员邵帅的博客:http://blog.csdn.net/ss00_2012/article/details/51441753 我们使用EasyDarwin的推 ...

最新文章

  1. 51CTO完成B轮融资,围绕1400万社区用户的IT学习平台要怎么做?
  2. WebGIS中地图恢复初始位置及状态
  3. 深入理解JVM原理之编译openjdk7
  4. 昨天终于收到《.Net Web服务编程》
  5. android root工具twrp,安卓手机没有twrp的情况,如何下刷入magisk并获得root权限.
  6. comcerter无法识别串口_基于FPGA 的MXN维字符识别的实现
  7. 画王八java代码参数_java画乌龟源代码-郭遥航.doc
  8. java pdf水印排布问题_java 实现 PDF 加水印功能
  9. In-Stream Big Data Processing
  10. 魏兴华_ORACLE优化器革命漫谈
  11. Arduino驱动的安装
  12. Oracle简单SQL语句(详细!!!)
  13. mfc中CImageList的使用
  14. WEBSHELL权限提升技巧
  15. CAD转JPG图片,在线转换成高质量彩色图片
  16. 电气成套设备远程监控应用
  17. vue壁纸网站源码 自适应手机端 自动采集360壁纸接口
  18. 笨方法学Python 习题 42: 对象、类、以及从属关系
  19. 恶俗:或现代文明的种种愚蠢读后感
  20. PHP 获取微信小程序用户手机号

热门文章

  1. python-异常处理、元类
  2. word打不开doc文档
  3. 2023年1、2月份回顾:比特币收涨41.7%,最大振幅53.6%
  4. 使用RadioGroup实现底部导航栏
  5. win10 win7共享文件夹
  6. 社区经理是做什么的?
  7. 进博会中国自行车牌子辐轮王自行车在进博会“强磁场”吸睛又吸金
  8. 武汉游戏公司android面试
  9. 装python要什么硬件配置_lol薇恩出装,无敌输出装秒杀全场
  10. windows程序设计——飞机大战笔记(单文档文件登陆界面)