js的垃圾回收机制分为
1:引用计数法
a:原理:对象被引用时,引用值+1,对象被取消引用时,引用值-1,当对象的引用值为0时,触发js的垃圾回收机制。
b:缺点:当对象被循环引用时,引用值不会被清零,造成内存泄漏。
2:标记清除法
a:原理:标记+清除。首先将所有的对象标记为0,然后从根对象开始遍历,将存活的对象标记为1,清除所有标记为0的对象,把标记为1的对象标记为0,方便下次垃圾回收机制的进行。这样会出现对象存储空间不连续的情况,再有新的对象进来,找位置成了一个问题,所以为了方便找位置,衍生出来了三种方法:
aa:first-fit:找到第一块可以放下新对象的位置(性能最好)
bb:best-fit:找到可以放置新对象的最小块
cc:worst-fit:找到一个位置,将该位置分割成若干块,在若干块中找位置放新对象
b:v8对js垃圾回收机制的优化
aa:新生代(小, 新, 短)
from空间, to空间
bb:老生代(大, 老, 长)
优化策略:标记清除法+标记压缩法