zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    pm2部署node应用
    koa源码分析
    将vim配置成一个轻量的IDE开发工具
    私有npm下载资源
    nodejs的会话总结
    redis---安全设置
    Lua----注意事项
    Leetcode538.-Convert BST to Greater Tree-Easy
    Leetcode 230-Kth Smallest Element in a BST-Medium
    Leetcode669-Trim a Binary Search Tree-Easy
  • 原文地址:https://www.cnblogs.com/lyroge/p/2119629.html
Copyright © 2011-2022 走看看