引擎会给内存中的每个对象都会分配一个唯一的 heap ID,称为 Instance ID。 在未优化前,该 ID 满足以下机制:
Remapper 是引擎内部用于保存对象的序列化 ID 和加载后的 Instance ID 之间双向映射关系的一个数据结构。当游戏使用到的资源较多时,游戏运行过程中 Remapper 就需要维护两张比较大的数据表,占用一定内存。极端情况下,Remapper 的内存占用能达到 80MB 或更多。
Remapper 内存优化通过修改以下行为方式,大幅降低了 Remapper 的内存占用:
经测试,在一款小游戏上优化后的 Remapper 内存占用由原来的 2MB,降低为 1MB。