白鹭打包微信小游戏,内存占用随时间增长,wxtool上还是 wing内置的 类chrome调试器,用法都差不多,但是初次用的话 ,烦乱的 object 们 还是 很麻烦的
主要用到的是profiles的 record allocation timeline,字面意思,记录 内存分配 时间线。
start 就可以 开始记录 游戏 内存 分配情况,点 红点 关闭就 生成分析文件
这里主要 介绍一下 调试思路,方法~具体 界面上 的各个名词 ,可以百度~ 还是有的,基本就是字面意思
1. 第一点就是 因为 js 是GC 管理 内存 回收,所以 不能 去看实时的 或者很短的记录 就 判断 是否 是泄露,未回收的内存。
要长一点时间,规律明显的 才行。标点1 的 时间线上,灰条就是 分配的 但已回收的内存,蓝条就是 没回收的内存,
所以 主要追查 蓝条,同时注意,调试中,把游戏窗口 鼠标聚焦,让其活跃,否则 wing默认 stop 不运行的。。。
2.主要 的 追查就是 distance 属性,界面 上 除了 时间线,就是 上面的 constructor 和 持有者实例了,就是说,
上面是被分配的实例的构造器(类名,所以如果有思路 知道大概是哪个类 泄露了,就 可以 根据类名 筛选,不过像我,
不知道哪里泄露的,只能根据距离去判断了 )。distance的意思 就是 距离,当前实例 距离 实际被泄露 的 实例的调用距离,
就是 套了几层函数调用,