首页 > Web开发 > 详细

js垃圾收集

时间:2019-07-30 20:54:29      阅读:70      评论:0      收藏:0      [点我收藏+]

我们在写js的时候,不需要过多关心内存的使用,英文js的垃圾收集机制可以实现内存回收的自动管理。

垃圾回收机制的原理:按照固定的时间周期,找出代码执行中不再使用的变量,释放其内存。

垃圾收集器需要跟踪哪些变量有用,哪些没用,有两种方法:

  1. 标记清除:当变量进入与出入执行环境时,会给变量做上标记(可以用任何方式标记),将离开执行环境的变量清除。

         2.引用计数:当一个引用类型值赋给变量时,这个值的次数是1,当同一个值又赋给另一个变量时,这个值的次数+1。当引用了这个引用类型值的变量转去引用了其他值,那么这个引用类型值的次数-1。如果这个引用类型值的次数为0,说明这个值已经无法访问到了,就会被清除掉。

  引用计数的问题:循环引用。循环引用就是对象A中包含一个指向对象B的指针,对象B中包含一个指向对象A的指针。这样值的次数都是2,并且无法清除。

如下:

var objA=new Object();
var objB=new Object();
objA.otherObj=objB;
objB.otherObj=objA;

这样垃圾回收机制无法清除他们,内存无法释放,但是可以手动解决

var objA=new Object();
var objB=new Object();
objA.otherObj=objB;
objB.otherObj=objA;
....
//当objA,objB没有用时
objA.otherObj=null;
objB.otherObj=null;

 

js垃圾收集

原文:https://www.cnblogs.com/ellen-mylife/p/11272563.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!