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

    垃圾回收器会定期(周期性)找出不再继续使用的变量,然后释放其内存,各个浏览器的周期不同,常用的垃圾回收机制有这两种。
     
    标记清除(常规)
        浏览器将所有引用变量加上标记,然后将全局引用的变量以及闭包的标记清除。在执行js代码的时候会进入一个执行环境,当离开当前执行环境时,当前执行环境内标记的变量会被清除,大多数浏览器都是使用这种方式。
    引用计数(IE7/8,Netscape Navigator3)
        每次引用一个变量,都会在引用计数中+1,如果这个值赋给另一个引用,那么再+1,相反,如果当引用这个值的变量引用了其他的变量,那么就会-1,当引用数量为0时,会被垃圾回收器清除。
     
    引用计数的问题——>(循环引用)
        (IE中有一部分不是使用的原生的js对象,使用的是C++模拟的COM对象来模拟,它的垃圾回收机制是使用的引用计数,当产生引用循环时,就会大大占用内存。)
    解决办法——>手动解除引用循环
        在使用完之后手动将其设置为null,将变量设置为null意味着切断变量与它此前引用的值的联系,当垃圾回收器下次运行,就会删除这些值并回收它们占用的内存
  • 相关阅读:
    Ajax实现表格实时编辑
    自定义简单分页
    有趣的 0
    关于AJAX的一些事
    JQ中的FormData对象 ajax上传文件
    订单导出
    javaScript事件委托
    javascript递归函数
    详解javascript中this的工作原理
    详解JavaScript对象继承方式
  • 原文地址:https://www.cnblogs.com/asablog/p/11608082.html
Copyright © 2011-2022 走看看