Performance Statistics

本文档主要围绕开发者最关心的音视频质量、延迟、流畅性、稳定性以及 CPU、内存、耗电、发热等关键指标,在正常弱网环境不同实时互动场景(1v1、1vN等)下进行客观测试及分析总结。

无损及弱网环境下的效果质量

测试场景

视频通话及在线直播的音视频场景和语音通话场景。

参数配置

  • 视频通话:
    参数类型配置信息
    分辨率368 × 640
    码率400Kbps
    帧率15
  • 互动直播:
    参数类型配置信息
    分辨率720 × 1280
    码率1200Kbps
    帧率15

极限网络抗性测试数据

极限网络抗性测试指的是在各种网络损伤环境下,测试 SDK 所能承受的最大网络损伤。

说明:

具体损失指标及含义请参见 附录1:音视频质量指标说明

音频弱网 MOS 值

数据解读:实时音视频 TRTC 能够在非常不理想的网络环境下以更低延迟的同时保障较高的音质。
以下为实时音视频 TRTC 在以下弱网环境下客观 MOS 评价结果:

客户端 SDK 性能数据

测试设备信息

设备类型处理器类型内存
Android 设备1骁龙835-8核6G
Android 设备2麒麟980-8核8G
iOS 设备1A8-双核1G
iOS 设备2A13-6核4G

测试参数配置

参数类型配置信息
分辨率240 × 320
码率100kbps
帧率15

测试方案说明

  • 测试场景:1v1、1v2、1v4、1v8。
  • 测试时长:每个场景均测试30min。
  • 测试方案:用 Linux 推流机器人构造多人场景,各测试设备均独立测试。

测试结果

数据解读:实时音视频 TRTC SDK 在 CPU 使用率、内存占用率、发热、耗电等各项性能表现较好,占用较少的硬件资源即可提供高质量的音视频服务。

  • App CPU 使用率:
  • App 内存使用率:
  • 系统总 CPU 使用率:
  • 系统总内存使用率:
  • 运行30分钟耗电量:
  • 运行30分钟发热增量:

附录1:音视频网络损伤指标说明

网络损伤指标说明示例
Loss网络丢包50% Loss 代表10个包中会丢5个包
Delay代表延迟200ms Delay 也就是 SDK 发送的包,会经过200ms后才被网络发送出去
Jitter代表抖动300 Jitter 也就是 SDK 发送的包,有概率随机推迟20ms、280ms、50ms、250ms等发出去,最大延迟为300ms,平均延迟为150ms

附录2:网络损伤下的效果数据说明

效果数据说明
MOS 值常以衡量通信系统语音质量的重要指标。客观 MOS 值采用 Spirent Nomad 设备进行 POLQA 打分,分数越高代表音质越好
端到端延时端对端延时指从发送端音频采集到接收端播放的耗时
极限音视频抗性测试标准加网络损伤之后,分别使用 Spirent Nomad 设备进行 POLQA 打分、使用 foreman 视频序列发送后在接收端检测帧间隔情况,持续观察10分钟以上,取30个数据点,若有3分钟3次以上主观可感知的效果异常或者1次较长时间的不可用现象,即视为超过抗性能力
注意:

POLQA(感知客观语音质量评估)标准,即基于 ITU P.863 国际标准进行打分,适用于人声评测。POLQA 是全球通用的可针对各种网络场景的语音质量分析标准。

附录3:SDK 性能指标说明

指标类型说明
App CPU 使用率AndroidApp CPU 表示进程未规范化 CPU 使用率,统计结果和 Android Studio Profiler 一致。
iOSApp CPU 表示进程 CPU 使用率,统计结果和 Xcode 一致。
PerfDog 使用率 = Xcode 使用率 / 核心数
系统 CPU 使用率AndroidTotal CPU 表示整机未规范化 CPU 使用率,统计结果和 Android Studio Profiler 一致。
iOSTotal CPU 表示整机 CPU 使用率,统计结果和 Xcode 一致。
PerfDog 使用率 = Xcode 使用率 / 核心数
内存使用率AndroidPSS Memory,统计结果和 Android Java API 标准结果一致,与 Meminfo 也一致。
iOSXcode Memory,XCode Debug gauges 统计方式。
耗电量测试时监控电量从100%掉到99%的时候开始记录,设置结束电量值,根据比例计算30分钟的耗电量。
发热增量未启动 App 使用测温枪统计当前温度,启动 App 在每个场景下运行 30 分钟。
发热增量 = 30分钟后的温度 - 未启动 App 时温度