zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    vs2015编译各种库
    回测分析软件
    交易平台
    策略框架
    期货homes平台以及仿ctp接口
    k线中转器
    期货数据服务器以及取数据接口
    c++ 二叉树的遍历(迭代,递归)
    c++实现单向链表的一些操作
    numpy操作
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/11272563.html
Copyright © 2011-2022 走看看