对浏览器垃圾回收机制的理解

一、浏览器的垃圾回收机制

1、垃圾回收的概念

     javaScript代码运行的时候,需要分配内存空间来存储变量和值。变量不再参与的时候,就需要系统收回被占用的内存空间,这就是垃圾回收

🌈 回收机制:
     ● js具有自动垃圾回收机制,会定期对那些不再使用的变量、对象占用的内存进行释放
     ● js 中存在变量,局部变量和全局变量。全局变量的是声明周期会持续到要页面卸载;局部变量声明在函数中,它的生命周期从函数执行开始,直到函数执行结束
     ● 局部变量使用闭包在外部可以使用,函数的执行结束后,函数外部的变量依然指向函数内部的局部变量。此时局部变量仍然在使用,所以不会回收

二、垃圾回收的方式

1、标记清除

      标记清除是浏览器最常见的垃圾回收方式,当环境进入执行环境的时候,被标记为进入环境的变量是不能被回收的,离开环境标记离开,会被内存释放
垃圾收集器在运行的时候会给存储在内存上的所有变量都加上标记,然后去掉环境中的变量以及被环境中的变量引用的标记

2、引用计数

      使用计数器来跟踪对象被引用的对象

三、减少垃圾回收

      浏览器可以进行垃圾自动回收,但是代码复杂的时候,垃圾回收带来的代价比较大,所以应该减少垃圾回收

🍧 以下三种方法
      ● 对数组进行优化
       清空一个数组的时候,最简单的方法就是将数组置空,但此时会同时创建一个新的空对象。可以选择将数组长度设为0
      ● 对对象进行优化
       对象尽量复用,对于不再使用的对象,就将其设置为null,尽快被回收
      ● 对函数进行优化
       在循环中的表达式,如果可以复用,尽量放在函数的外面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值