js定时器一直开启会增加内存么_【译】解释JavaScript的内存管理

点击上方“蓝字”关注本公众号

3f2c31c54c35ed978be3368457d758a8.png

原文地址:https://felixgerschau.com/javascript-memory-management/#memory-life-cycle

原文标题:JavaScript's Memory Management Explained

大多数时候,作为一个JavaScript开发人员,您可能不知道任何关于内存管理的知识。毕竟,JavaScript引擎会为您处理这些问题。

不过,在某个时刻,您会遇到一些问题,比如内存泄漏,只有知道内存分配是如何工作的,才能解决这些问题。

在本文中,我将向你介绍内存分配和垃圾回收的工作原理,以及如何避免一些常见的内存泄漏。

内存生命周期

在JavaScript中,当我们创建变量、函数或任何你能想到的东西时,JS引擎会为此分配内存,并在不再需要时释放它。

分配内存是在内存中占用空间的过程,而释放内存是释放空间,准备用于其他用途。

每当我们分配一个变量或创建一个函数时,它的内存总是经过以下相同的阶段:

ae53e66946df6c8575a2a56c8cd24b71.png

  • 分配内存

JavaScript为我们处理这个问题:它为我们创建的对象分配我们需要的内存。

  • 使用内存

使用内存是我们在代码中显式地做的事情:读写内存只不过是读写变量。

  • 释放内存

这个步骤也由JavaScript引擎处理。一旦分配的内存被释放,它就可以用于新的用途。

内存管理上下文中的“对象”不仅包括JS对象,还包括函数和函数作用域。

内存堆和堆栈

我们现在知道,对于我们在JavaScript中定义的所有内容,引擎会分配内存并在不再需要时释放内存。

我想到的下一个问题是:这个数据要放在哪里?

JavaScript引擎有两个地方可以存储数据:内存堆和堆栈

堆和堆栈是引擎用于不同目的的两种数据结构。

堆栈:静态内存分配

601767bfbbf5da9510dd423205f4c2a0.png<

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值