默認
打賞 發表評論 11
移動端實時音視頻聊天框架:RainbowAV性能測試報告
閱讀(22159) | 評論(11 收藏 淘帖

1、報告概述


本文描述的是RainbowAV在某測試環境下的性能數據,因音視頻服務的特殊性,服務端很難有條件展開壓力測試(文末會簡要說明服務端性能情況),因而本文重點關注RainbowAV在手機端的流量消耗、CPU消耗、內存占用等方面,并以手機QQ、微信等標桿產品為樣本簡要的作了一些對比。

最新動態:2018年2月11日已發布RainbowAV v2.1版(詳見v2.1更新說明)。

因測試條件有限,本文測試數據僅供參考,請以生產環境的真實表現為準。

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/內存占用情況也可以大致推算出耗電量了。不過,實際情況是無論哪家實時音視頻技術,耗電量都不會小,因為實時音視頻本身就是非常態的流量和計算密集型應用,這一點很容易理解,不用糾結。

即時通訊網 - 即時通訊開發者社區! 來源: - 即時通訊開發者社區!

推薦方案
評論 11
厲害
真人出鏡嗎

不好意思,視頻里忘了穿衣服
簽名: 養孩子真累。。
樓主忘了打馬賽克
看到真的了,樓主牛
樓主這廣告 大的 無縫切入
引用:Frank 發表于 2018-12-16 10:40
樓主這廣告 大的 無縫切入

簽名: 養孩子真累。。
好猥瑣

哈哈
簽名: 養孩子真累。。
代碼里用到fec arq 帶寬估計等模塊嗎?
打賞樓主 ×
使用微信打賞! 使用支付寶打賞!

返回頂部
曾氏料二肖中特