JS垃圾回收机制

来源:互联网 发布:原声电影翻译软件 编辑:程序博客网 时间:2024/06/09 14:43

参考书籍《JavaScript高级程序设计》
JS具有自动垃圾收集机制,执行环境会负责管理代码执行过程中使用的内存。
1、标记清除
当变量进入执行环境时,会对该变量进行标记,当变量离开环境时,会修改标记。垃圾收集器会对正在使用的变量去掉标记,清除掉有标记的变量的内存。差不多是这样的,不过只是一个很模糊的过程,具体如何标记,怎么标记要清除的变量,这是一个问题。
2、引用计数
这个应该还比较好理解。
引用计数的含义是:跟踪记录每个值被引用的次数。
当引用次数为0时,代表没有办法访问这个值。垃圾收集器下次运行时,就可以清除引用次数为0的值的内存。不过存在循环引用的问题,那么这个值的引用次数不为0。
function problem(){
var a = new Object();
var b = new Object();
a.someOtherobject = b;
b.anotherObject = a;
}//程序来自《JavaScript高级程序设计》没用IDE 我也不知道打错没
//。。。。意思差不多就是这个
a b 引用次数不会为0 。。。因此不会被回收。

差不多就这样,后面想到再补。。。不对的地方敬请指教。

原创粉丝点击