AssetBundle TypeTree 内存优化
粒子系统内存优化
在小游戏开发环境中,由于设备内存资源受限,提升粒子系统的内存利用率至关重要。Tuanjie 针对粒子系统进行了优化,旨在降低其在运行时的内存开销。Tuanjie 1.6.6 及以上小游戏平台默认开启。
核心优化策略
Tuanjie 对粒子系统做了以下优化:
- 粒子模块按需加载:粒子系统包含众多功能模块。优化后,系统仅会加载您实际勾选并使用的模块,避免了未启用模块带来的额外内存占用。
- 降低粒子系统预分配buffer:原本粒子系统会根据理论最大粒子数量(最大粒子数量=最长生命周期×最大生成速率)预分配一段连续内存,导致空闲内存较多。Tuanjie 降低了初始预分配预算,并采用自动扩张机制:仅在当前缓冲区不足以支撑现有粒子时,才按需动态增长。
- 释放非播放状态的粒子内存:对于非循环播放的粒子系统,Tuanjie 实现了播放结束即刻释放内存的机制。相比以往必须等待粒子系统销毁才释放内存的做法,这一改进对于存在粒子系统池化的游戏有较大的帮助。
优化效果实测
通过 Memory Profiler 抓取的对比数据显示,上述优化可将粒子系统的内存占用降低 50% 以上。以下图片左图为2527个粒子系统优化前的内存占用,右图为4143个粒子系统优化后的内存占用。
单个粒子系统表现
实测显示,原本单个占用约 20 KB 以上的粒子系统,在优化后内存占用普遍降低至 10 KB 左右,内存占用缩减效果明显。
AssetBundle TypeTree 内存优化