JS 垃圾回收机制以及垃圾回收策略

垃圾回收机制

  • 什么是垃圾回收机制
  • 解释:执行环境负责管理代码执行过程中使用的内存。JS的垃圾回收机制是为了以防内存泄漏,简单来说就是:间歇的不定期的寻找到不再使用的变量,并释放掉它们所指向的内存。
  • 什么是内存泄漏
  • 解释:是指不再用的内存没有被垃圾回收机制及时释放出来,导致该段内存无法再使用,积少成多,导致系统越来越卡,直至崩溃。
  • 什么会引起内存泄漏
  • 1、:意外的全局变量引起的内存泄露
  • 2、:闭包(慎用闭包,除非你很明确你的意图)
  • 3、:没有清理的 DOM 元素引用
  • 4、:遗忘的定时器或者回调
  • 怎样避免内存泄漏
  • 1、:慎用闭包
  • 2、:逻辑清晰,避免“死循环”之类的
  • 3、:减少不必要的全局变量
  • 4、:避免创建过多的对象

垃圾回收策略

  1. 标记清除法:垃圾回收机制获取根并标记它们,然后访问并标记所有来自它们的引用,然后再访问这些对象并标记它们的引用…如此递进结束后若发现没有标记的则进行删除,进入执行环境的不能删除。
  2. 引用计数法:当声明一个变量并给该变量赋值一个引用类型的值时候,该值的计数+1,当该值赋值给另一个变量的时候该计数+1,当该值被其他值取代的时候,该计数-1,当计数为0时,说明无法访问该值,垃圾回收机制则清除该对象。
  3. 引用计数法缺点:当两个对象循环引用的时候,引用计数法无计可施。如果循环引用多次执行的话,会造成崩溃等问题,后被标记清除法取代。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值