浅谈浏览器垃圾回收机制

javaScriipt 使用垃圾回收机制来自动管理内存

js 的回收机制目前分为两种方式:1.标记清除(各大浏览器主流算法)2.引用技术

  一: 标记清除

    这种算法的思想是给当前不使用的值加上标记,然后再回收其内存

    算法流程:

      1.浏览器再运行的时候会给存储再内存中的所有变量都加上标记

      2.去掉环境中的变量以及被环境中引用的变量的标记

      3.如果还有变量有标记,就会被视为准备删除的变量

      4.垃圾回收机制完成内存的清除工作,销毁那些带标记的变量,并回收他们所占用的内存空间

  二:引用计数

    这种算法的思想是跟踪记录所有值被引用的次数。javaScript 引擎目前都不再使用这种算法,但再IE 中访问非原生JavaScriopt 对象(如DOM元素)时,这种算法任然可能会导致问题

    当代码中存在循环引用现象时,引用计数算法就会导致问题

    解除变量的引用不仅可以帮于消除循环引用现象(一个变量使用完之后赋值为null),而且对垃圾收集也有好处。为了确保有效的回收内存,应该及时解除不再使用的全局对象、全局对象属性以及循环引用变量的引用

    算法流程:

      1.声明了一个变量并将一个引用类型的值赋值给这个变量,这个引用类型值引用次数就是1

      2.同一个值又被赋值另一个变量,这个引用类型的值引用次数加1

      3.当包含这个引用类型值得变量又被赋值另一个值了,那么这个引用类型的值的引用次数减一

      4.当引用次数变成0时, 说明这个值需要解除引用

      5.当垃圾回收机制下次运行时,它就会释放引用次数为0 的值所占用的内存

    

(0)

相关推荐

  • 火山中文编程:012如何删除变量及垃圾回收机制介绍

    第一种方法,鼠标选中需要删除的变量,当鼠标选中后,选中的变量会高亮显示,这时候直接按键盘DELETE键即可快速删除变量,这种方法只有选中变量表格后才能使用,否则无效. 第二种方法删除变量的方法,鼠标放 ...

  • 关于JS垃圾回收机制

    一.垃圾回收机制的必要性 由于字符串.对象和数组没有固定大小,所以当它们的大小已知时,才能对它们进行动态的存储分配.JavaScript程序每次创建字符串.数组或对象时,解释器都必须分配内存来存储那个 ...

  • PHP垃圾回收机制的一些浅薄理解

    PHP垃圾回收机制的一些浅薄理解 相信只要入门学习过一点开发的同学都知道,不管任何编程语言,一个变量都会保存在内存中.其实,我们这些开发者就是在来回不停地操纵内存,相应地,我们如果一直增加新的变量,内 ...

  • 第 111 天:Python 垃圾回收机制

    众所周知,Python 是一门面向对象语言,在 Python 的世界一切皆对象.所以一切变量的本质都是对象的一个指针而已. Python 运行过程中会不停的创建各种变量,而这些变量是需要存储在内存中的 ...

  • 说说Python中的垃圾回收机制?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • 面试题-python 垃圾回收机制?

    前言 简历上写着熟悉 python 面试官上来就问:说下python 垃圾回收机制?一盆冷水泼过来,瞬间感觉 python 不香了. Python中,主要通过引用计数(Reference Counti ...

  • [PHP小课堂]PHP垃圾回收机制的一些浅薄理解

    [PHP小课堂]PHP垃圾回收机制的一些浅薄理解 关注公众号:[硬核项目经理]获取最新文章 添加微信/QQ好友:[xiaoyuezigonggong/149844827]免费得PHP.项目管理学习资料 ...

  • 浅谈废旧锂电池回收_【快资讯】

    浅谈废旧锂电池回收 潮男密码关注2020-06-28 09:33 全民仙战 轻轻松松做个逍遥神仙 我帮嫂子扒玉米,刚弄一会,她就说累了,要去地中心休息会儿 大反转!三任前夫死后,她嫁给村里的大傻子壮壮 ...

  • 揭秘旧衣服回收的真实现状,浅谈旧衣服回收的发展机会和巨大商机

    旧衣服回收逐渐市场化,利润空间巨大,普通人也可以轻松月入过万 旧衣服回收行业在本质上属于再生资源回收的一个细分领域,同时也属于环保行业.一方面旧衣服的有效回收可以减少因为人们随意丢弃旧衣服,所造成的严 ...