遥记得去年的五月份抱着高程书啃的时候, 对于垃圾回收一脸懵逼, 后续由于不常用, 就淡化了, 今天无意看到这个知识点, 记录一下.

更新


[2019-5-8]

Added

  • Initial release

一、前言


自动垃圾回收机制, 本质就是找到未来不会使用的变量或对象

二、记录


2.1 全局变量

全局变量的生命周期较长, 会导致其长时间不会被回收, 开发中尽量避免使用全局变量.

2.1 标记清除法

标记阶段清除阶段组成.

  • 定时扫描
  • 从根开始, 递归遍历每一个引用的对象
  • 标记每一个能从根对象访问到的对象
  • 遍历堆内存, 释放未标记的对象

2.2 引用计数法

根据指向变量的引用个数, 判断是否需要回收

无法解决循环引用的问题:

1
2
3
4
5
const o1 = {};
const o2 = {};

o1.o2 = o2;
o2.o1 = o1;

三、参考