引擎内部的内存分配器,出于 Profile、平台兼容等原因,存在一些 Overhead。小游戏平台对内存比较敏感,可以针对这方面进行更极致的优化。
即使在 Release 版本中,引擎内存分配器也会记录每次分配的大小,用于统计内存分配总量,并且会在内存分配器层面多引发一次内存对齐,带来更多的 Overhead。
这些 Overhead 现在在 Release 版本中默认关闭。
关闭后 Profiler.GetTotalAllocatedMemoryLong
获取的值为0,如果需要在 Release 版本中使用此接口,可以通过 Slim接口 重新启用:
EditorBuildSettings.SetSlimTypeMiniGame("AllocateOverhead", EditorBuildSettings.SlimType.KeepOriginal);
或者在 BuildSettings -> Strip Advice 窗口中设置。
引擎默认内存默认 Alignment 是16字节,但小游戏平台不需要这么大,在 Release 版本下减小为4字节,可以进一步降低相关的 Overhead。