javascript垃圾收集知识点概要(二)
来源:互联网 发布:大数据时代新闻 编辑:程序博客网 时间:2024/06/10 01:36
标记清除
Javascript中最常用的垃圾收集方式是标记清除(mark-and-sweep)。当变量进入环境(例如,在函数中声明一个变量)时,就将这个变量标记为“进入环境”,永远不能释放进入环境的变量所占用的内存,因为只要执行流进入相应的环境,就可能会用到他们。而当变量离开环境时,则将其标记为“离开环境”。
可以使用任何方式来标记变量。比如,可以通过翻转某个特殊的位来记录一个变量何时进入环境,或者使用一个“进入环境的”变量列表及一个“离开环境的”变量列表来跟踪哪个变量发生了变化。说到底,如何标记变量其实并不重要,关键在于采取什么策略。
垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记(当然,可以使用任何标记方式)。然后,他会在去掉环境中的变量以及被环境中的变量引用的变量的标记。而在此之后仍带有标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了。最后,垃圾收集器完成内存清除工作,销毁那些带标记的值并回收他们所占用的内存空间。
到2008年为止,IE、Firefox、Opera、Chrome和Safari的JavaScript实现使用的都是标记清除式的垃圾收集策略(或类似的策略),只不过垃圾收集的时间间隔互有不同。
0 0
- javascript垃圾收集知识点概要(二)
- javascript垃圾收集知识点概要(三)
- javascript垃圾收集知识点概要(三)
- Javascript垃圾收集策略
- JavaScript垃圾收集
- JavaScript的垃圾收集
- javascript的垃圾收集
- javascript垃圾收集器
- JavaScript学习-垃圾收集
- JavaScript 垃圾收集机制
- 垃圾收集器(二)
- JavaScript中的垃圾收集机制
- 浅谈javascript垃圾收集机制
- 说说 JavaScript 垃圾收集原理
- 垃圾收集器(二)
- JVM垃圾收集(二)垃圾收集算法
- Qt知识点收集(二)
- JavaScript变量、作用域和内存问题(二)——垃圾收集器
- 扫描给定的包及其子包下面的所有类
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记3
- java自带线程池和队列详细讲解
- javascript垃圾收集知识点概要(三)
- 应用程序的生命周期
- javascript垃圾收集知识点概要(二)
- JavaScript学习总结(七)Ajax和Http状态字
- ios如何设置私有变量
- ubuntu 14.04lts 安装mysql
- Ubuntu 设置环境变量
- js 实现子页面和打开它的父页面同时刷新
- 解决Eclipse调试真机时出现adb refused request: closed
- Java中异常处理进阶篇(一)
- Java中的Enum的使用与分析