Wwise性能Profiler
Wwise编辑器提供了强大的性能功能,支持编辑器和真机实时Profile。更多信息详见:第 34 章 性能分析
在Profile之前,需要打开对应项目的工程,否则Profile时呈现的数据会有问题。
Wwise Profiler视图
Wwise Profiler会监视并记录性能、内存使用和所有来自声音引擎的活动。由三个子视图构成:Capture Log(捕获日志),Perfomance Monitor(性能监视器)和Advanced Profiler(高级性能分析器)。更多信息可查看:第 54 章 Profiler 视图
点击菜单Layouts -- Profiler(或按快捷键F6),可切换到Profiler视图。
裁剪Profile数据
避免Profile过大的影响Wwise游戏运行性能(CPU、内存、数据网络传输等),可在Profiler Settings(性能分析设置)中去掉某些不关心的性能数据。
注:Capture Log即Profile视图左上角Panel中输出的日志
性能指标
各个指标项及说明如下:
指标项 | 说明 |
API calls |
在特定时刻,针对声音引擎的 API 调用数量。开放调用的数量包括对同一个函数的多次调用。 所以比如在某一时刻有 5 个不同的 API 函数被调用,但由于对同一个函数进行了多次调用,所以总调用次数可能要比 5 高得多。 |
CPU - Total |
音频线程的 CPU 占用量。Audio Thread CPU 所基于的计数器会从唤醒处理音频的音频线程时开始计数,并在音频线程处理完成时结束计数。 根据所在平台和运行在同一 CPU 核心上的其它线程的优先级,此数字可能会比声音引擎的实际 CPU 占用大很多。 但是,您可以将其视为“音频运算资源百分比”,也就是说,如果它接近100%,则音频将很有可能无 CPU 可用。
注:计算公式是渲染一帧所需的时间和每帧总长时间的比值(48kHz 每帧1024个采样的情况下,一个音频帧长度是 21.3ms) 1000% 的占用率表示 CPU 需要花费 213ms 才能渲染一帧的内容,渲染的速度远慢于播放速度。 |
CPU - Plug-in Total | 在指定时刻,插件占用的 CPU 比例。 |
Command Queue Size |
当前为 Command Queue 分配的内存量,用于储存游戏应用程序发送给声音引擎的命令。 命令并不显示在 Capture Log 中。命令队列的默认大小为 256 KB。最大值可以在 Wwise SDK 中进行设置。 例如:播放事件(Play Event)。RTPC = 50。 |
Command Queue Used | 当前时刻 Command Queue 的占用百分比。 |
DSP Usage | 当前时刻数字信号处理器的占用百分比 此计数器只有在选中某些平台(比如 PS4 )时才会显示。 |
Loaded Banks (Memory) | 当前内存中加载的 SoundBank 大小。 |
Loudness Momentary(Sync Group 1 to 4) | Loudness Meter 视图瞬时(0.4 秒矩形时间窗)响度电平。 |
Loudness Short-term(Sync Group 1 to 4) | Loudness Meter 视图短期(3 秒矩形时间窗)响度电平。 |
Number of Active Events | 由游戏发送(尚未达到相应 Active Listener 上限)的事件数量。 |
Number of Active Listeners | 活跃的听者数量。 |
Number of Active Sends | 活跃的 Game-defined 或 User-defined 辅助发送数量。 |
Number of Prepared Events | 使用函数 PrepareEvent()进行预备的事件数量。 当预备 Event 时,只有该 Event 关联的特定媒体会被加载到内存中。 |
Number of Registered Objects | 当前时刻已注册的游戏对象数量。 |
Number of State Transitions | 当前时刻 State 之间的过渡数量。 |
Number of Streams | 当前时刻打开的流播放的总数。 |
Number of Streams (Active) | 激活的流数量。在上一个性能分析帧中,如果流播放需要或正在等待至少一条 I/O 传输时,则该流播放处于活跃状态。 |
Number of Transitions/Interpolations | 当前时刻活动的淡变/过渡/插值的数量。 |
Number of Voices (Physical) | 当前时刻播放的实声部数量。 |
Number of Voices (Total) | 当前时刻播放的音频声部或独立实例总数(实声部和虚声部)。 |
Number of Voices (Virtual) | 在指定时刻,虚声部列表中的虚声部数量。 |
Output Peak | 在指定时刻,声音引擎的峰值输出,单位为 dB。 |
Prepared Events (Memory) | 已预备的事件所占用的内存大小。该大小也包括预备事件之后,因此而加载到内存中的所有媒体文件的大小。 |
Total Media (Memory) | 已加载到内存中的媒体文件的总大小。 |
Total Reserved Memory | 内存池中预留的总内存量。此数字包含为以下池预留的内存:Default pool(默认池)、Lower Engine pool(底层引擎池)以及将包含来自已加载 SoundBank 的媒体的内存池。 |
Total Streaming Bandwidth | 在指定时刻,流播放占用的总带宽。此值包含 Low-level I/O 传输以及通过 Stream Manager 缓存进行的传输(不需要访问磁盘),因此此值大于或等于总 I/O 带宽。 |
Total Streaming Bandwidth (Low-Level) | 在指定时刻,流播放占用的总带宽。总底层播放流带宽。该值仅会考虑 Low-level I/O 传输,并且不考虑 Stream Manager 中通过缓存数据所做的虚拟传输。 |
Total Used Memory | 在指定时刻,内存池的内存占用总量。 |
连接设备
要能在Wwise列表中看到目标设备,需满足以下条件:
(1)Wwise编辑器与目标设备必须在同一个局域网。 ①Wwise编辑器与目标设备都在同一个PC机上。② 搭建一个wifi热点,Wwise编辑器与目标设备都连向这个wifi。
(2)目标设备上游戏需打入Debug或Profile版本的wwise库 注:手机包需为非shipping包
(3)允许Wwise编辑器进程通过Windows Defender防火墙
选中设备,点击Connect按钮报错:Unable to establish a remote connection.
可能是本机与远程设备之间网络不通,例如:开启Proxifier代理,没有登录ioa网络等
对编辑器或Standalone进行Profile
对Android手机包进行Profile
对iOS手机包进行Profile
启动游戏,弹出下面的对话框时,点击“好”。
保存性能数据到prof文件
注:点击红框按钮来保存prof文件
打开prof性能文件
为了在Performace Monitor比较好地展示曲线图,可通过鼠标单击对应列的数值来对阈值其修改。
Memory
Used(顶端):用到的内存总和。
列表中为各个分类的内存信息。
① Media为加载到内存中的媒体文件,主要是SoundBank占用的内存。
② Profiler为profile耗费的内存。
③ Sound Engine为声音引擎耗费的内存。
④ Spatial Audio为空间音频占用的内存。
⑤ Streaming为I/O内存池和流占用的内存。
CPU
Listeners
Emitter-Listener
Busses
参考