最近公司再用uniapp 写app ,发现程序运行了一段时间, 越点越卡,直到崩溃
app崩溃怀疑的方向
- 可能是内存不足导致
- 可能是系统不兼容导致
内存方面: 采用deviceinfo的插件 来监听全局,在 onShow onHide中打印可用内存
注意: deviceinfo.availMem() 出来的是字节所以得做个转化
通过内存打印,发现确实有内存的关系,是和编程人员用的路由方式有关
一直用的 navtgateTo, 一直入栈,没有出栈,导致切换页面,如果页面涉及到渲染的比较多,内存就会上升且在一段时间不会释放,为什么会用这个,是由于返回上一页用的navigateBack ,导致带参数的这种,逐级访问.
解决方案:
我测了测 小页面,普通页面的内存是一个30mb,出栈后退,会减少内存,基础页面基本不影响, 主要是那种动画渲染,带参数的,可以在onLoad 存入 setStorageSync 然后后退在去值赋值到option
- 兼容性的修改与确定
这个得看公司的样机资源, 为什么会考虑到系统兼容性呢,因为,内存优化完,样机很流畅的再跑…但是客户的机子不行,客户的机子内存还是高配,8g 10g的这种,在推脱给内存,就显得不专业了
来源: https://ask.dcloud.net.cn/article/36195