首先 问题是 T3E项目 突然联系我说,出了个小问题 0.0 然后下去发现 在IE11下,20分钟操作就引起页面崩溃,
按理说64位系统 浏览器也拥有1.5G的内存,一个web项目 怎么会引起性能问题呢。
so 用IE11的内存跑了下 发现部分页面每次加载就加了200M的内存 但离开 并没有内存降低的迹象…大概了解了
首先的应对策略
首先,确认了一下项目背景,是由前端及部分开发共同开发的。
技术栈为VUE + atyUI(公司基于ElementUI 进行的二次封装)。
而后 要了一份GIT地址 然后看了一下sonar,代码从检查来看还可以。进行人肉检查。果然发现了大量的数据处理 和页面create里的大量前置接口 0.0 还真是公司特色呐~
而后继续 检查。
发现公共的JS文件 放入了 Mixins里,确实是好习惯 但是…引入了36次…
发现 大量的数据操作 使用reduce filter等语法操作数据,从性能来看 要比for循环更加损耗内存,但这么严重的性能问题
不会是这种操作引起的 但需要记录一下。
打开控制台 通过PerforMance和快照 发现atyUI中存在大量闭包 无法被销毁。。原来你才是罪魁祸首
整理文档 交给项目组 整改