il2cpp运行时依赖元数据来获知C#类型、方法等信息。元数据的大小与小游戏中的C#代码数量正相关,其中保存了程序集,类型,方法等信息和相互之间的引用关系。默认的元数据结构可以支持超过21亿个类型或方法,但对于小游戏来说,方法的数量通常在万这个级别。因此在打包小游戏时,我们会获取当前使用到的方法数量,根据数量的大小自动选择满足当前要求的精简后的元数据结构,从而达到减小il2cpp元数据文件的目的。
由于il2cpp元数据文件保存在游戏的首包内,并且在小游戏运行时常驻内存中,因此il2cpp元数据精简对小游戏的启动时间,内存都有所帮助。在某案例中,global-metadata.dat从15.3MB缩减为 13.3MB,缩减了约15%左右。
il2cpp元数据精简特性可以通过 “Use Slim Format For global-metadata.dat” 选项来控制开启,默认为勾选状态。