资源泄漏检测

版本记录

日期版本说明作者
2018-11-6 1.0 资源泄漏 李俊

问题分割


游戏从热更开始,找到1个点,这个点满足能反复到达。 大地图之前增加1个空场景。刚进游戏就是这个空场景。

刚进游戏前资源问题


人工方式确定在profile里每个资源合理性,要求这个阶段的资源都是ab里加载出来的,重点确定每个ab的合理性

刚进游戏后资源问题


方法:
一. 第一次达到这个点,获取下所有的operationhandle的快照
二. 长时间游戏后,再次到达这个点,获取下所有的operationhandle的集合,跟一中的快照做对比,得到三部分:

  1. 一有二有(正常)
  2. 一有二没有(忽略)
  3. 一没有二有(泄漏部分)

注意:
泄露的operationhandle需要提供足够的信息以便解决问题,即需要记录下来c#的栈和lua的栈,lua栈可能是错误的

资源加载模块,自我检测工具

从资源加载模块获取到所有正在使用的ab,与assetbundle的api获取到的,做对比,差异部分为有问题的。

问题


  1. 解决不了资源没有及时释放
  2. 进游戏前需要人工排查,存在风险,资源过多,人工无法排查
  3. 两次snapshot对比,合理存在的差异资源
  4. 泄漏只能到资源层面,到不了对象层面
  5. 内存产生的资源对象,是无法查到, 比如RT
  6. 没达到所有资源都在框架释放

posted on 2020-01-07 14:35  marcher  阅读(126)  评论(0编辑  收藏  举报

导航