日期 | 版本 | 说明 | 作者 |
---|---|---|---|
2019-8-15 | 1.0 | 文档初始版本 | 李俊 |
资源泄漏
-
统一资源加载
DKAssetManager:LoadObjectSync
DKAssetManager:LoadObjectAsync 每次加载都有唯一的guid -
资源snapshot 对比
进主城的时候,snapshot以下,guid的快照
等游戏进行一段时间后,再snapshot下,得到差异的guid
代码泄漏
- 回调泄漏
关闭缓存下,对比增长的回调来源 - 关键对象释放
ui对象释放完,查找引用路径 - 大表检测
全局便利,找到包含元素大于100以上的表,给出路径 - 配置表
格式转换 大配置表加释放逻辑 配置方式,导出格式不满足需求,原本是排序生成新表 - 加快垃圾回收 + table.const
垃圾回收参数增大到600 table.const不变的配置表 xlua新增clearnull,c#测发现有对象destroy了,提前清掉引用
资源占用
-
资源格式
texture readwrite enable mipmap mesh readable, 注意mesh保存成asset,内存双份,用fbxexporter -
rt
有些组件实现,比如shadowproject,在ondisable的时候,没有删除rt 全屏界面rt考虑非rt的实现方案 -
shaderlab
standard清理,清理材质球,清理fbx带默认材质球 uber.shader占20M shader清楚默认贴图引用 -
图集
小图集策略,无法合批,且宽高是4的整数倍,考虑散图 动态加载与静态引用的图分开 -
特效
删除无用节点 -
ui prefab
图片界面会修改的image节点,不要拖图 -
材质球
清理无用引用
资源管理
-
从全缓存,集中释放 改到 积极释放+缓存队列
-
尽量减少全局缓存改成异步+缓存队列
-
ab unload(false)
ab只包含一个主动加载资源,且不被任何ab依赖,加载完成后就ab unloadfalse, 之后使用加载 出来的asset,主要是图集
黑科技
- QualitySettings.masterTextureLimit
资源制作
-
检查超标资源
-
降低资源引用关系
-
清理无用资源