大屏内存泄漏排查
泄漏源
- 平台
部分独立部署版本中可能存在定时器未清除的情况。
- 组件
各个组件的配置项非常多,不同的配置项组合可能的可能性也非常多,当前无法通过测试手段在前期完全杜绝内存泄漏的可能性,只能在遇到时进行定向处理。
- 过滤器及其他可编辑代码区域
数据过滤器、条件、自定义动作等代码编辑区域可以执行各种各样的代码,而这些代码的自由度极高,可能引发的状况也非常多。
泄漏原因
- 无限循环
- 未被清除的变量、定时器长期累加
- 超大数据空间占用(如超大模型等)
思路与流程
检测方式
浏览器的开发者工具
- 性能
- 内存
- 性能监视器
使用代码定时记录
window._testTimer = setInterval(()=>{
const key = "mem-FLL-0203-empty"
let list= localStorage[key];
if(!list) list=[];
else list=JSON.parse(list);
list.push({
timeOrigin:new Date(performance.timeOrigin).toLocaleString(),
usedJSHeapSize:performance.memory.usedJSHeapSize,
totalJSHeapSize:performance.memory.totalJSHeapSize,
time:new Date().toLocaleString()
});
localStorage[key] = JSON.stringify(list);
}
, 4*30*1000);
如遇其他使用问题,可扫描下方二维码,获取更多产品支持~