Wwise SDK 2023.1.9
|
备注: 我们在 Wwise 2019.2 版本中对内存管理器进行了全面修改。以下说明仅适用于 2019.2 及后续版本。 |
Wwise 声音引擎所执行的内存分配可大致分为两类:声音引擎初始化时实施的各项固定大小分配以及动态分配。
有些固定大小分配可通过初始化参数来控制。下面列出了初始化时内存分配的控制参数:
其中,uIOMemorySize 最为重要。此流播放缓冲区大小的设置应基于最多同时流播放的声音数、声音的比特率和流播放声音的安全时间要求。对有些游戏来说,8 MB 的默认值好像有点浪费内存。不过在开始时最好分配较大的内存,等稍后明确了内存用量再进行削减。有关流播放缓冲区内存的详情,请参阅 Audiokinetic Stream Manager 初始化设置 。
如需详细了解声音引擎所执行的各种内存分配,请参阅 AkMemID 中有关内存分配类别的说明。Wwise 内 Advanced Profiler(高级性能分析器)视图的 Memory(内存)选项卡中会报告各个类别的统计信息。
您可以在 Monitor Queue(监控队列)和 Profiler(性能分析器)类别中专门为调试分配内存池。不过,Release 版本中并不会使用这些类别的内存池。您只需减去这些类别的内存池大小便可清楚地了解 Release 版本的内存用量。
备注: 您还可以在不连接到游戏的情况下,在 Memory 选项卡中查看声音引擎的内存占用量,方法是通过从 Wwise 本身直接捕获(Capture)性能分析信息。 |
声音引擎所执行的内存分配总量可通过 AkMemSettings::uMemAllocationSizeLimit 初始化参数来控制。在设定限值后,声音引擎会根据内存不足情况的出现时机做出不同的反应。例如,在以下场景中内存不足时会发生以下情况:
在使用 Wwise Profiler 时,游戏中每发生一次分配失败就会向捕获日志中发送一条警告通知。您可以通过检查该通知列表来查明游戏当中达到内存限值时所涉及的内存类别。
以下原因可导致内存占用高:
警告: 在测试考察内存用量峰值时,必须确保将游戏当前所用扬声器设为最高配置(比如,在使用系统音频输出设备时,在电脑上设为 7.1)。这样做很有必要。因为在将扬声器设为立体声时声音引擎会实施一定的优化,所以使用的内存会比多声道配置要少一些。 |
以下各节中提供了更多的详情: