• JavaScript高级程序设计(第2版) 之 JavaScript垃圾收集


    Javascript拥有自己的垃圾收集机制,因此我们省去了手工内存回收的问题。

    这里简单的记录下关于这部分的内容

     

    javascript有两种垃圾收集策略 

     

    一、            标记清除

    该方法是在执行垃圾收集时先将内存中所有变量置位,然后去除执行环境及执行环境引用的变量,将其余变量视为无用变量予以收回。 

    小注:

    目前大部分浏览器采用的方法,另外在程序中将不再用的变量置为null可以使垃圾回收器在下一次执行中立刻释放相应内存。

     

    二、            引用计数

    就是对变量的引用次数进行跟踪记录,当引用次数为0时视变量为不再用,予以内存收回。

    小注:

    由于循环引用问题会导致内存得不到释放,如果在循环规模比较大的情况下会导致浪费大量内存。例如:

    Function test()

    {

           Var o1 = new Object();     

           Var o2 = new Object();

           O1.obj = o2;

           O2.obj = o1;

    }

    如程序中o1,o2的引用次数都为2 函数结束时也不会减为0,所以内存得不到释放。

    解决办法:

    可以手工拆除循环引用。

    O1.obj = o2.obj = null;

  • 相关阅读:
    influxdb服务器 relay
    browse-agent type and curl post
    使用 Ansible 管理 MySQL 复制
    ansible里的item和with_items
    Ansible 从MySQL数据库添加或删除用户
    ansibel---tag模块
    ll | wc -l的陷阱
    ansible 判断和循环
    Ansible详解(二)
    Ansible详解(一)
  • 原文地址:https://www.cnblogs.com/lyroge/p/2119629.html
Copyright © 2020-2023  润新知