js 怎么降低虚拟内存?
概念: 首先理解什么是内存,既代码运行中占用的 memery,并非磁盘硬盘加载。每种语言运行都会占用内存,基本都是变量,数据结构,值,加载库,run-time 之类的。
开发过程中可以降低的方法:
一、 优化代码结构
- 简化代码,比如自己写的原生 for 语句,可以用 reduce 一个方法代替。那么代码量不仅减少,而且原生方法 reduce 的性能也会更高。
let sum = 0;
for (let i = 0; i < arr.length; i++) sum += arr[i]
arr.reduce((pre, cur) => pre + cur, 0);
- 减少全局变量,它会直到页面关闭才释放内存。能划分作用域的,尽量使用作用域。此处应该思考一下闭包知识。
二、合理使用数据结构
- 选择合适的数据结构和写 html 选择合适的标签是一个意思。当然 div + css 大道其行的今日,可以实现任何相同效果,但是很多人都忘记了标签的使用,甚至大多语意标签,它们其实比较有用的,比如 label 属性,article 标签,for 属性。 回归正题,JS 里面数组用来寻找值是可以的,但是如果用来判断唯一值,可用 Set,效率高,比 includes API 好。Map 可以用来代替 pure Object。
三、事件监听器及时释放 四、避免闭包引起泄露 五、使用 chrome 内存分析快照工具优化。 六、代码分割打包和懒加载技术。 七、使用高效的垃圾回收机制,理解回收机制,设计模式重复使用对象。