美文网首页
js的内存管理机制

js的内存管理机制

作者: sun_hl | 来源:发表于2021-08-18 14:56 被阅读0次
什么是内存管理

所谓内存管理,是 js 从创建变量到垃圾回收的一个过程。

它的生命周期
  • 分配你所需要的内存(变量声明的时候)
  • 使用分配的内存(读,写)
  • 不需要的时候回收(或者释放)内存
js 的内存空间

分三种:
栈:存放变量,包括基础数据类型的变量及对象的指针
堆:存放引用数据类型的值
池:一般也归类为栈,保存常量

垃圾回收的原理

找出那些不再继续使用的变量,然后释放其占用的内存。

浏览器的垃圾回收策略
  • 标记清除
  • 引用计数算法
    具体详见下篇文章
什么是内存泄漏?

不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)

js 中哪些操作会引发内存泄漏:
  • 全局变量引起的内存泄露(例如没有使用 var, let, const 定义的变量)
    解决方式: 在js文件开头添加 ‘use strict',开启严格模式。(或者一般将使用过后的全局变量设置为 null 或者将它重新赋值。

  • 用完的定时器没有清除
    解决方式:当不需要interval或者timeout的时候,调用clearInterval或者clearTimeout

  • 闭包引起的内存泄露:慎用闭包

  • dom清空或删除时,事件未清除导致的内存泄漏

  • 循环引用带来的内存泄露(例如没有结束条件的递归,循环引用的对象)

相关文章

  • 谈谈js中的内存机制——垃圾回收机制

    内存管理机制就是分配内存管理,每种编程语言都有它的内存管理机制,JavaScript的内存管理机制是:内存基元在变...

  • js 内存管理机制

    什么是内存管理 所谓内存管理,是 js 从创建变量到垃圾回收的一个过程。 它的生命周期 分配你所需要的内存(变量声...

  • Java内存管理机制 ————浅析原理

    java内存管理机制 内存泄漏 内存溢出 内存抖动: 话术整理 首先java的内存管理机制 gc的垃圾回收...

  • js的内存管理机制

    什么是内存管理 所谓内存管理,是 js 从创建变量到垃圾回收的一个过程。 它的生命周期 分配你所需要的内存(变量声...

  • Android内存管理机制

    Android内存管理机制 [转载自大果仁Pareto的 android内存管理机制] 1、基于Linux内存管理...

  • javaScript 内存管理机制

    大家好,今天分享的主题为 JavaScript 内存管理机制,本次分享将从以下三部分进行讲述: js 内存管理与 ...

  • javaScript 内存管理机制

    大家好,今天分享的主题为 JavaScript 内存管理机制,本次分享将从以下三部分进行讲述: js 内存管理与 ...

  • Android内存管理机制

    Android内存管理机制的定义 内存的分配 内存的回收 管理机制的说明 管理的内存对象 进程 对象 变量 管理的...

  • 内存优化(app专项测试)

    1.优化内存的常见操作 (一)内存管理机制 (二)常用内存监控工具 (三)内存优化案例分析 2.内存管理机制 AR...

  • iOS的内功:内存管理机制

    1.Objective-C的内存管理机制 OC的内存管理机制有三种,分别是ARC(自动内存管理),MRC(手动内存...

网友评论

      本文标题:js的内存管理机制

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