CPU
预处理、缓存数据
注释空的unity函数
运算cpu->gpu
减少昂贵计算(开方)
限制帧数
加载(预加载、分帧加载、异步加载、对象池)
慎用可空类型比较
避免频繁计算(分帧、隔帧)
算法优化
变体收集预热
使用clear操作代替容器的new操作
unity spine使用二进制格式
品质分级
多线程、协程
批次合并
静态合批 | |||
动态合批 | |||
手动合批 | |||
gpu instancing | 同材质 | ||
srp batcher | 同shader |
mipmap、LOD
font->tmp font
GC
减少手动gc,考虑在加载时gc
减少字符串的使用,避免使用字符串做key,使用StringBuilder拼接
lambda、LINQ->本地函数
减少协程使用,协程返回值缓存
object.name etc
减少日志刷屏,处理错误警告日志
减少ToArray之类的操作
UI
显示隐藏(Alpha Group)
禁用mipmap
内存
lua减少table构造
采用精度更小的数据(Color->Color32)
压缩数据
时间换空间
ab包根据功能分包、动态加载卸载
网络
减少网络包体的大小和精度
减少网络包发送数量
GPU
填充率
降低分辨率
shader(减少精度、减少if操作、减少复杂数学计算、使用手机版本shader)
带宽
调整图片大小格式(尺寸、通道、复用、图集(降低DC))
OD
参考资料
Unity性能优化大合集,All In One !(更新至8.18) - UWA问答 | 博客 | 游戏及VR应用性能优化记录分享 | 侑虎科技从UWA(www.uwa4d.com)上线至今的半年时间内,我们不知不觉,累积推送了80多篇技术原创文章,今天我们把所有的技术推送整理了索引,方便大家查阅,此文也将不断更新。同时,侑虎君想说:曾...https://blog.uwa4d.com/archives/allinone.html
https://www.cnblogs.com/timlly/p/10463467.htmlhttps://www.cnblogs.com/timlly/p/10463467.html