SG Com 计算资源使用情况
SG Com 在 CPU 上运行,对 GPU 没有影响。以下是内存、CPU 和功耗的测量值。
内存
典型的聊天用例包括一个引擎和一个或多个播放器,其中前者用于处理本地麦克风输入,后者用于计算本地或远程角色 Speech Graphics 动画控制器(请参阅引擎和播放器)。只有在构建和销毁引擎和播放器时才会分配和释放堆,其他函数不会触及堆。
代码  | 堆(每个引擎)  | 堆(每个播放器)  | 堆栈  | 
~12 MB  | ~12 MB  | ~1.5 MB + (44 KB * b) 其中 b = 播放器缓冲长度(秒)  | < 10 KB  | 
CPU
我们对引擎和播放器的两个高频函数进行了速度测量:
SG_COM_ProcessTick(引擎)。该函数每秒调用 100 次,以 10 毫秒的数据块为单位处理音频输入,下面的测量值是处理 1 个数据块所需的时间。
SG_COM_UpdateAnimation(播放器)。该函数根据应用的帧率调用,以计算输出动画通道的值,下面的测量值是处理 1 帧所需的时间。
对于 SG_COM_UpdateAnimation,处理时间取决于角色骨骼控制的复杂程度和类型。我们考虑了两个骨骼控制的样本:
骨骼控制 1 是一个骨骼装备,有 82 个 Speech Graphics 动画控制器的骨骼
骨骼控制 2 是一个 Epic MetaHuman,有 252 个 Speech Graphics 动画控制器的标量通道(和一些骨骼)
Windows  | Linux  | MacOS  | iOS/Android  | XBox X  | PS5  | |
处理器  | Intel Xeon E5-4620  | Intel Xeon Silver 4114  | Intel Xeon E5-1650  | ARM v8 Cortex-A72  | AMD Zen 2  | AMD Zen 2  | 
速度 (GHz)  | 2.2  | 2.2  | 3.5  | 1.8  | 3.66  | 3.5  | 
一次帧处理时间(毫秒)  | 0.695  | 0.673  | 0.374  | 0.816  | 0.357  | 0.171  | 
更新 - 骨骼控制 1(毫秒)  | 0.187  | 0.183  | 0.0884  | 0.522  | 0.0981  | 0.0797  | 
更新 - 骨骼控制 2(毫秒)  | 0.0923  | 0.0823  | 0.0422  | 0.251  | 0.0357  | 0.0202  | 
整个系统中的缓存大小和内存使用模式会影响内存到 CPU 的带宽,而此带宽通常是性能的限制因素。为获得最佳效果,调用 SG_COM_ProcessTick 的线程应尽可能固定核心亲和性。
移动功耗
SG Com 针对移动功耗进行了优化,大部分计算都使用整数运算。电流功耗的估计值基于以下因素得出:将设备放电至指定容量的 90% 所需的时间(与控制器闲置时的情况相比)。请注意,这里不包括 3D 渲染的功耗。
Galaxy S20 Ultra 5G  | |
功耗 (mA)  | ~115  |