默认
打赏 发表评论 13
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
移动端实时音视频聊天框架:RainbowAV性能测试报告
微信扫一扫关注!

1、报告概述


本文描述的是RainbowAV在某测试环境下的性能数据,因音视频服务的特殊性,服务端很难有条件展开压力测试(文末会简要说明服务端性能情况),因而本文重点关注RainbowAV在手机端的流量消耗、CPU消耗、内存占用等方面,并以手机QQ、微信等标杆产品为样本简要的作了一些对比。

最新动态:已发布RainbowAV v2.2.6版(详见版本更新说明)。

因测试条件有限,本文测试数据仅供参考,请以生产环境的真实表现为准。

RainbowAV的详细情况,请参见《移动端实时音视频聊天框架:RainbowAV基本介绍》。

相关链接:
  ① RainbowAV详细介绍:点此进入 推荐
  ② 移动端即时通讯框架:MobileIMSDK
  ③ Web端即时通讯框架:MobileIMSDK-Web
  ④ 移动端实时音视频框架:RainbowAV
  ⑤ 全功能产品级IM案例:RainbowChat
  ⑥ Web端产品级IM案例:RainbowChat-Web

2、测试环境


  • 手机端网络:为了排除网络复杂性对测试的干扰,测试由同一WiFi局域网中的手机两台完成;
  • 服务端网络:云服务器位于阿里云青岛的IDC机房,相当于苏州的手机连接青岛的服务端;
  • 测试手机 A:型号 MOTO XT1077、Android 5.0、四核CPU(1.2G Hz)(2015年生产,设备较老,请酌情解读测试结果);
  • 测试手机 B:型号 华为T-821L平板、Android 4.3、四核CPU(1.2G Hz)(2014年平板,设备较老,请酌情解读测试结果);
  • 手机端工具:腾讯手机管家 和 Android ADT插件(Eclipse 4.3、Android SDK)。

注:为了简化数据对比,本文中手机端的性能数据均取自“测试手机 A”

3、如何测试手机流量?


1运营商是怎么计算手机流量的


按照现行的运营商收费规则,手机的流量统计是:上行数据流量+下行数据流量 之和,因而测试结果也同样会是按照两者之和给出。那么在实时音视频的场景下,假设两台手机上行流量是均等的话,实际上每个端的上传数据量就是这个流量除以2的结果。

本次测试流量的方法有两个:

  • 一个是使用腾讯手机管家(不是广告,个人喜好而已);
  • 一个是使用Android的ADT插件自带网络流量流计工具。

下面我们简要的看看具体该如何使用。

2如何使用手机管家监控实时流量


打开手机管理后,将流量监控悬浮窗显示出来即可:
移动端实时音视频聊天框架:RainbowAV性能测试报告_guanjia_help.jpg

3如何使用Android ADT工具监控实时流量


在Eclipse中,打开ADT里的DDMS,查看"Network Statistics"选顶卡中的内容即可:
移动端实时音视频聊天框架:RainbowAV性能测试报告_QQ截图20170912181120.png
注:RX表示下行流量、TX表示上行流量,2者相加即是实时总流量。

4、如何测试CPU占用?


测试CPU占用的方法有两种,一种是利用Android手机的开发者选项下的“显示CPU使用情况”,一种是利用Android的ADT插件。

利用Android手机的开发者选项下的“显示CPU使用情况”的方法:
移动端实时音视频聊天框架:RainbowAV性能测试报告_QQ截图20170912183115.png

利用Android的ADT插件查看CPU占用情况的方法:
移动端实时音视频聊天框架:RainbowAV性能测试报告_QQ截图20170912183422.png

5、如何测试内存占用?


利用Android的ADT插件查看内存分配情况的方法:
移动端实时音视频聊天框架:RainbowAV性能测试报告_QQ截图20170912184414.png

6、网络流量测试


1)实时音视频聊天时:
移动端实时音视频聊天框架:RainbowAV性能测试报告_rb_av_流量测试2_video.jpg

2)实时语音聊天时:
移动端实时音视频聊天框架:RainbowAV性能测试报告_rb_av_流量测试2_audio.jpg

7、CPU占用测试


1)实时音视频聊天时:
移动端实时音视频聊天框架:RainbowAV性能测试报告_rb_av_video_cpu.png
说明:RainbowAV在实时音视频聊天时的CPU占用约为17%

2)实时语音聊天时:
移动端实时音视频聊天框架:RainbowAV性能测试报告_rb_av_audio_cpu.png
说明:RainbowAV在实时语音聊天时的CPU占用约为11%

8、内存占用测试


实时音视频聊天持续测试30分钟后的内存占用情况:
移动端实时音视频聊天框架:RainbowAV性能测试报告_QQ截图20170912212837.png
说明:RainbowAV在实时音视频聊天时的内存占用稳定在13M左右的低位,即使运行在Android 2.3老系统老机型上同样流畅

9、测试结果小结


限于篇幅原因,更多测试结果就不一一贴出,如果有疑问可自行深入测试。因测试条件有限,本文中的测试数据仅供参考,以下是本文测试结果的小结。

1)RainbowAV手机端性能指标总结:
  • 1)客户端运行稳定后,内存占用约13M左右(以MOTO G XT1077手机为例);
  • 2)实时音视频(视频+语音)时,CPU占用约17%(手机QQ的约为20%、微信的约为19%);
  • 3)实时语音(仅语音)时,CPU占用约11%(手机QQ的约为12%、微信的约为5%);
  • 4)实时音视频(视频+语音)时上下行总流量约30KB/S手机QQ和微信的均约60KB/S);
  • 5)实时语音(仅语音)时上下行总流量约9KB/S手机QQ的约14KB/S、微信的约6KB/S).

2)RainbowAV服务端性能指标总结:
因为测试条件有限,本次没有对服务端展开完整测试。但RainbowAV服务端基于Linux epoll(大名鼎鼎的Ngnix的高性能正是以此为基础),理论设计性能是:单机1000到10000人同时使用。鉴于实时音视频的复杂性(P2P、中转等混合发生),想要准确地测试统计非常困难。实际运营时因为实时音视频技术的高流量特性,通常单机瓶颈会首先出现在带宽上,所以生产部署时需要在单机性能和带宽分流上总体考虑。而也正是得益于实时音视频的特殊性,聊天时可同时部署多个服务端实例,只要引导该对聊天的用户同时连接同一台实例即可进行聊天,从而让分布式部署和负载均衡变的简单。

3)本次为什么没有测试手机端耗电量?
通常情况下,手机的能耗大户就是网络数据传输、CPU计算等,本次测试为了节省时间,没有单独测试耗电量。实际上根据流量消耗、CPU/内存占用情况也可以大致推算出耗电量了。不过,实际情况是无论哪家实时音视频技术,耗电量都不会小,因为实时音视频本身就是非常态的流量和计算密集型应用,这一点很容易理解,不用纠结。

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

推荐方案
评论 13
厉害
真人出镜吗

不好意思,视频里忘了穿衣服
楼主忘了打马赛克
看到真的了,楼主牛
签名: im从业10年以上,欢迎切磋![url=http://www.52im.net/static/image/smiley/default/handshake.gif]http://www.52im.net/static/image/smiley/default/handshake
楼主这广告 大的 无缝切入
签名: im从业10年以上,欢迎切磋![url=http://www.52im.net/static/image/smiley/default/handshake.gif]http://www.52im.net/static/image/smiley/default/handshake
引用:Frank 发表于 2018-12-16 10:40
楼主这广告 大的 无缝切入

好猥琐

哈哈
签名: 看看 哈哈

没有服装公司的广告费所以坚决不漏衣服了
引用:李蒿 发表于 2020-10-21 16:56
没有服装公司的广告费所以坚决不漏衣服了

那是,防止商标纠纷就得裸测
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部