美文网首页
RateStatistics 解读

RateStatistics 解读

作者: MinorUncle | 来源:发表于2017-11-03 19:05 被阅读88次

    今天看到了PacedSender,然后又在其中看到了特殊的AlrDetector,而又在AlrDetector中看到了RateStatistics,于是在此笔记一下。

RateStatistics属于base模块,主要用于类似最近的max_window_size_ms大小的时间段内的网速,本来是很简单的一个数组能解决的功能,webrtc按照习惯写的比较复杂,但是封装的接口还是比较清晰,主要思路是,用window_size_ms大小的数组类似桶排序的方式摆放接收到的数据,以当前时间到最后过期时间差为下标存储数据,每次有新数据时,采用遍历的方法排除过期数据。没有一点桶排序查找效率高的优点,倒是有内存占用大的缺点。效率比较低下;

重要内部函数解析:

void RateStatistics::EraseOld(int64_t now_ms):删除过期的数据,即now_ms - current_window_size_ms_时间之外的数据。

重要接口函数解析:

RateStatistics(int64_t max_window_size_ms, float scale):构造函数,max_window_size_ms表示窗口大小,scale表示转换参数,影响最后结果,用于单位转换。

void RateStatistics::Update(size_t count, int64_t now_ms):新增count个数据到记录中,并调用EraseOld删除current_window_size_ms_之外的过期数据

rtc::Optional Rate(int64_t now_ms):获得当前的网速,等于count * scale / active_window_size,所以count单位与scale觉得最后单位。采用scale = kBpsScale(8000.0f)时,当count单位为Byte,Rate单位为kBps。

相关文章

  • RateStatistics 解读

    今天看到了PacedSender,然后又在其中看到了特殊的AlrDetector,而又在AlrDetector中...

  • WebRTC之RateStatistics

    RateStatistics就是一个用于计算最近一段时间内(max_window_size_ms)的带宽,scal...

  • RateLimiter解读

    RateLimiter严重依赖RateStatistics实现,其主要作用是限制最大码率,主要逻辑是,设置最大码率...

  • AlrDetector解读

    通过了解上一章的RateStatistics之后,AlrDetector就比较容易理解了,主要功能是利用现有的带宽...

  • 女娲文化之研究

    古代传说解读篇 道家文化解读篇 东西方文化对照解读篇 瑜伽能量解读篇 佛家文化解读篇 封神演义解读篇 现代解读意义篇

  • 破界突围之路:初探IPD流程(三)

    继上篇,IPD流程的源头,要通过三解读(标准解读、客户需求解读、场景解读),充分解读需求,再去适配产品,进入产品...

  • 不同的人学习同一个知识的分解和解读是不同的

    今天跟天赋解读师颜姐了解天赋解读,其实原先已经有另一个天赋解读师给解读过我自己的天赋。 上次的天赋解读师,只是解读...

  • 《把时间当做朋友》快读完了,记录今日份感受

    李笑来用最没有偏差的视角去解读自己,解读他人,解读生活,解读社会,解读世界。通过他的“时间”让我看到了正确...

  • 解读

    解读你 解读你的思想 解读你的一切 解读你不需要和时间赛跑 只要和你有过交谈、旅行、舞会, 就会知道“你” 解读你...

  • 【猜你喜欢】手淘流量,猜你喜欢行业案例解读

    猜你喜欢行业案例解读 目录: <女装行业案例解读1> 《女装行业案例解读2》 <美妆行业案例解读> <女装行业案例...

网友评论

      本文标题:RateStatistics 解读

      本文链接:https://www.haomeiwen.com/subject/xvwtmxtx.html