美文网首页
js垃圾回收机制

js垃圾回收机制

作者: 木中木 | 来源:发表于2019-10-16 08:54 被阅读0次

我们都知道,JS是自动进行垃圾回收,回收算法有两种:标记清除和引用计数

  • 标记清除
    程序在运行的时候,垃圾回收机制会被所有在内存里面的变量都打上标记,然后会去掉运行环境中用到的和被引用的变量。下一次垃圾回收运行的时候,就会把带有标记的变量内存进行释放。
  • 引用计数
    程序运行的时候,运行环境中用到和被引用的变量会被计数,每被应用一次就+1,下一次垃圾回收运行的时候把引用计数为0的变量释放。

那以上就是两种主要的垃圾回收算法,下面再说说平常比较容易出现内存泄露的地方

  1. 清空对应的dom的四号, 绑定事件未解绑,通过addEventListener为解绑
  2. 函数闭包变量为手动释放
  3. 集成框架中如react,在初始化的时候添加事件,在destroy的时候没有解绑事件
  4. setTimeout/setInterval,定时器用完没有clear掉
  5. 全局对象,特别是未定义的全局变量
  6. 死循环
  7. 循环引用,比如A对象中引用B对象,B对象引用A对象。
const A = {};
const B = {A};
const A.B = B;

性能问题
垃圾收集器是周期性运行的,而且如果为变量分配的内存数量很可观,那么回收工作量也是相当大的.在这种情况下,确定垃圾收集的时间间隔是一个非常重要的问题.

IE7发布的时候,其 JavaScript 引擎的垃圾收集例程改变了工作方式:触发垃圾收集的变量分配,字面量和(或)数组元素的临界值被调整为动态修正.IE7 中的各项临界值在初始时与 IE6 相等.如果垃圾收集例程回收的内存分配量低于 15%,则变量,字面量和(或)数组元素的临界值就会加倍.如果例程回收了 85%的内存分配量,则将各种临界值重置回默认值.

相关文章

  • JS 垃圾回收机制

    从下面这几个方面简单介绍:JS 垃圾回收机制,几种?weakMap, WeakSet JS 垃圾回收机制, 标记清...

  • Javascript垃圾回收机制

    简介 JS自带一套内存管理引擎,负责创建对象、销毁对象,以及垃圾回收。这期探讨一下垃圾回收机制。垃圾回收机制主要是...

  • JavaScript内存管理

    JS内存回收 JS 有自动垃圾回收机制,就是找出那些不再继续使用的值,然后释放其占用的内存。 垃圾回收算法: 引用...

  • JS垃圾回收机制

    JS中最常用的垃圾回收机制------标记清除 JS中最长用的垃圾回收机制是标记清除,当变量进入环境时,这个变量就...

  • 2018-10-13

    浅谈浏览器的垃圾回收机制和内存泄露 JavaScript使用垃圾回收机制来自动管理内存。 JS的回收机制分两种:1...

  • JS内存空间详解(摘录)

    js具有自动垃圾回收机制,垃圾回收的方法有两种:标记清除法、计数清除法 垃圾回收的实现算法: 垃圾回收器创建一个"...

  • 闭包的理解。

    js的垃圾回收机制 当一个函数执行完,js引擎会回收不再使用的内存,闭包通过这个作用域的引用,阻止了垃圾回收。 什...

  • JavaScript的垃圾回收机制

    大纲 1、认识垃圾回收机制2、垃圾回收机制的原理3、垃圾回收机制的标记策略4、垃圾回收机制与内存管理 1、认识垃圾...

  • JS垃圾回收机制(内存问题)

    垃圾收集机制理解 垃圾收集机制:释放无用的数据,回收内存。 垃圾收集机制分类:1)自动回收 2)手动回收 垃圾收集...

  • JavaScript的垃圾回收与内存管理

    1.垃圾回收机制 js具有自动的垃圾回收机制,执行环境会负责代码执行过程中使用的内存。 其实现原理是找出那些不在继...

网友评论

      本文标题:js垃圾回收机制

      本文链接:https://www.haomeiwen.com/subject/uzcymctx.html