昨天同事写了个功能,不但页面渲染慢,而且会导致微信小程序闪退(iPhone)。
闪退的原因很大概率是占用的内存或者 CPU 过高被微信强行 kill 掉。
排查过程:
首先确认渲染慢不是因为接口慢造成的。从 Network 可见, 请求 API 只用了两百毫秒,说明接口没有问题。
既然接口没有问题,那就是后续的数据处理逻辑出了问题。这是一个相对复杂的界面,我又懒得去一点一点看别人写的代码。索性找找微信开发工具上是否有自带的性能检测工具。
果然跟 Chrome 一样,都有一个 Audit 标签。
运行了一下
使用微信开发工具的 Audit 功能排查小程序闪退原因
果然实用,问题立马暴露了出来。。。
居然在 for 循环里调用 setData,一分钟调用了近 300 次。。。这不慢才怪。。。
使用微信开发工具的 Audit 功能排查小程序闪退原因
后续跟进
后来发现,这个页面在商品数量多时,异常卡顿。
原来大哥为每个商品都渲染了一堆重复的隐藏弹窗。。。
有话要说