zoukankan      html  css  js  c++  java
  • JS垃圾回收机制的一些笔记

    垃圾回收器会定期(周期性)找出不再继续使用的变量,然后释放其内存,各个浏览器的周期不同,常用的垃圾回收机制有这两种。
     
    标记清除(常规)
        浏览器将所有引用变量加上标记,然后将全局引用的变量以及闭包的标记清除。在执行js代码的时候会进入一个执行环境,当离开当前执行环境时,当前执行环境内标记的变量会被清除,大多数浏览器都是使用这种方式。
    引用计数(IE7/8,Netscape Navigator3)
        每次引用一个变量,都会在引用计数中+1,如果这个值赋给另一个引用,那么再+1,相反,如果当引用这个值的变量引用了其他的变量,那么就会-1,当引用数量为0时,会被垃圾回收器清除。
     
    引用计数的问题——>(循环引用)
        (IE中有一部分不是使用的原生的js对象,使用的是C++模拟的COM对象来模拟,它的垃圾回收机制是使用的引用计数,当产生引用循环时,就会大大占用内存。)
    解决办法——>手动解除引用循环
        在使用完之后手动将其设置为null,将变量设置为null意味着切断变量与它此前引用的值的联系,当垃圾回收器下次运行,就会删除这些值并回收它们占用的内存
  • 相关阅读:
    DataSet生成gb2312编码的xml
    利用SendMessage实现C#进程间通信
    DataSet与Xml之间的转换
    xml解析
    当前时间加指定的几个月
    Excel利用poi导入导出(上)
    mybatis.generator.plugins生成基础类
    Excel利用poi导入导出(下)
    ASP.NET 中的Session统一管理
    太幸福了,没有比我们更开放的网络了!
  • 原文地址:https://www.cnblogs.com/asablog/p/11608082.html
Copyright © 2011-2022 走看看