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