性能优化-内存优化

日期 版本 说明 作者
2019-8-15 1.0 文档初始版本 李俊

资源泄漏


  1. 统一资源加载
    DKAssetManager:LoadObjectSync
    DKAssetManager:LoadObjectAsync 每次加载都有唯一的guid

  2. 资源snapshot 对比
    进主城的时候,snapshot以下,guid的快照
    等游戏进行一段时间后,再snapshot下,得到差异的guid

代码泄漏


  1. 回调泄漏
    关闭缓存下,对比增长的回调来源
  2. 关键对象释放
    ui对象释放完,查找引用路径
  3. 大表检测
    全局便利,找到包含元素大于100以上的表,给出路径
  4. 配置表
    格式转换 大配置表加释放逻辑 配置方式,导出格式不满足需求,原本是排序生成新表
  5. 加快垃圾回收 + table.const
    垃圾回收参数增大到600 table.const不变的配置表 xlua新增clearnull,c#测发现有对象destroy了,提前清掉引用

资源占用


  1. 资源格式
    texture readwrite enable mipmap mesh readable, 注意mesh保存成asset,内存双份,用fbxexporter

  2. rt
    有些组件实现,比如shadowproject,在ondisable的时候,没有删除rt 全屏界面rt考虑非rt的实现方案

  3. shaderlab
    standard清理,清理材质球,清理fbx带默认材质球 uber.shader占20M shader清楚默认贴图引用

  4. 图集
    小图集策略,无法合批,且宽高是4的整数倍,考虑散图 动态加载与静态引用的图分开

  5. 特效
    删除无用节点

  6. ui prefab
    图片界面会修改的image节点,不要拖图

  7. 材质球
    清理无用引用

资源管理

  1. 从全缓存,集中释放 改到 积极释放+缓存队列

  2. 尽量减少全局缓存改成异步+缓存队列

  3. ab unload(false)
    ab只包含一个主动加载资源,且不被任何ab依赖,加载完成后就ab unloadfalse, 之后使用加载 出来的asset,主要是图集

黑科技

  1. QualitySettings.masterTextureLimit

资源制作


  1. 检查超标资源

  2. 降低资源引用关系

  3. 清理无用资源

猜你喜欢

转载自www.cnblogs.com/marcher/p/12161492.html