1.垃圾回收机制:
https://www.jb51.net/article/229425.htm
浏览器的垃圾回收机制_bdundun的博客-CSDN博客_浏览器垃圾回收机制
垃圾回收机制也称Garbage Collection简称GC。
垃圾产生:当一个对象没有任何的变量或属性对它进行引用,此时我们将永远无法操作该对象,这种对象就是一个垃圾,这种对象过多会占用大量内存空间,导致程序变慢。
垃圾回收机制:在JavaScript中有自动的垃圾回收机制,通过一些回收算法,找出不再使用引用的变量或属性,由js引擎按固定时间间隔周期性的释放所占用的内存空间。
垃圾回收策略:
- V8引擎的垃圾回收采用标记清除法与分代回收法
1.引用计数算法:记录每个变量值被使用的次数,如果为0,就销毁,回收其所占用的内存空间
2.标记清除:标记清除,标记整理(解决内存碎片,合理分配内存),
3.分代回收:针对不同的对象(新生代---存活时间短和老生代)采用不同的算法
新生代:复制算法(Scavenge 算法)加标记整理算法:对象区域和空闲区域无限重复使用
JavaScript 引擎采用了对象晋升策略,也就是经过两次垃圾回收依然还存活的对象,会被移动到老生区中。
老生代:标记清除,标记整理(解决内存碎片,合理分配内存)