开发者社区> 问答> 正文

谈谈你对垃圾回收机制的认识?

展开
收起
前端问答 2019-11-25 09:58:49 942 0
1 条回答
写回答
取消 提交回答
  • 前端问答小助手

    原理

    找到不再被使用的变量,然后释放其占用的内存,但这个过程不是时时的,因为其开销比较大,

    所以垃圾回收器会按照固定时间间隔周期性的执行

    回收方式

    a.标记清除

    当变量进入环境时,将这个变量标记为“进入环境”;当变量离开环境时,则将其标记为“离开环境”。

    标记“离开环境”的就回收内存

    b.引入计数(低级浏览器)

    当变量声明,第一次赋值时记为1,然后当这个变量值改变时,记录为0,将计数为0的回收

    内存泄露

    a.意外的全局变量引起的内存泄露

    原因: 全局变量不会被回收

    解决:使用严格模式避免

    b.闭包引起的

    原因: 活动对象被引用,使闭包内的变量不会被释放

    解决: 将活动对象赋值为null

    c.被清理的DOM元素的引用

    原因: 虽然DOM被删掉了,但对象中还存在对DOM的引用

    解决: 将对象赋值为null

    d.被遗忘的定时器或回调

    原因: 定时器内部实现闭包,回调也是闭包

    解决: 清理定时器clearInterval、null

    2019-12-17 09:30:43
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JVM实战 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载