• js垃圾收集


    我们在写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;
  • 相关阅读:
    Windows Python+Eclipse环境配置
    infobright系列二:数据迁移
    infobright系列一:源码安装infobright
    autotools归纳
    Atlas系列一:Atlas功能特点FAQ
    C#反射技术概念作用和要点
    .net获取本机公网IP代码
    Java泛型-类型擦除
    现在就使用HTML5的十大原因
    让网页图片变灰色的三种方法
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/11272563.html
Copyright © 2020-2023  润新知