数据类型(九)垃圾回收机制
引用计数法
- 跟踪记录对象的引用次数,当次数为0时就需要被销毁。
- 缺点:当对象中存在循环引用时,该对象无法被回收,造成内存泄漏
标记-清除法
- 解决循环引用的问题,但是会出现内存碎片。
- 解决策略:first-fit、best-fit、worst-fit
- 标记阶段
- 从根出发,遍历所有可达的对象并将其标记上活动对象。
- 清除阶段
- 清除所有未被标记的对象
Weakmap 和 Map
- Weakmap,键值对集合,键是弱引用,只能是对象,值没有限制。Map没有限制。
- Weakmap,键是弱引用,不会阻止与之关联的对象被垃圾回收。Map键是强引用,会阻止。
- Weakmap的 key 无法使用
forEach()
和keys()
遍历。
使用场景
- 引用 DOM 元素,
- 对象的缓存
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 姚永坤的小窝!
评论