Unity 项目优化总结 1、IOS闪退优化 A: IOS 上 C#代 码 通 过 AOT(Ahead of time)编 译 , 而 不 是 JIT(Just in time)
AOT实 现 反 射 机 制 需 要 预 先 分 配 一 块 内 存 存 类 的 元 数 据 , 当 过 度 使 用 泛 型 时 导 致 类 元 数 据过 大 , 预 分 配 内 存 不 够 就 闪 退 抛 出 “trampoline out of memery”异常
默认 nrgctx-trampolines=1024,nimt-trampolines=1024,ntrampolines=512, 建议优化为 nrgctx-trampolines=2048,nimt-trampolines=2048,ntrampolines=1024
B: 逻辑上 有一 条路径出 现 无限递归导 致 栈溢出 闪 退
C: IOS 上 不 支持字符集”GBK”导 致 闪 退 , 改成“UTF-8”
D: 程序逻辑出 现 两个空指针异常导 致 闪 退
2、纹理优化 目前纹理峰值占用 能够 到 110M, 纹理普遍压缩率不 够 或没有压缩, 而 且场景切换一 些资源未卸载, 导 致 内 存 高
纹理包括 UI 、场景、特效、人物纹理等等, 优化后保证纹理在 50M 以内 , 优化方式如下: A、纹理压缩格式: 目前纹理格式要 么没压缩, 要 么普遍采用Automatic Compressed,这个格式将 RGBA 32bits 压缩为 RGBA16 bits, 压缩率不 高
建议纹理压缩格式如下: Android 平台: RGBA Compressed ETC1+alpha bits(25%压缩率) IOS 平台: RGBA Compressed PVRTC 4 bits(1/8 压缩率) B、纹