Javascript内存管理

内存为什么需要管理?

function fn() {
    arrList = []
  arrList = [100000] = 'dy is a coder'
}

fn()

image.png

上面这段函数,从语法的层面来说,不存在任何问题的,不过当我们用相应的性能监测工具对脚本执行的过程进行监测的时候,我们会发现,他的内存变化,和我们看到的蓝色线条一样是持续升高的,在这个过程中并没有看到回落,这代表着:内存泄露。至于是如何泄漏的我们现在不需要纠结

如果说我们在写代码的时候,不够了解内存管理的一些机制,从而让我们编写出一些不容易察觉到的内存性能代码,这种代码多了以后,给我们程序带来的可能就是一些意想不到的bug,所以掌握内存的管理还是非常有必要的。

内存管理介绍

  • 内存:由可读写单元组成,便是一片可操作空间
  • 管理:人为的去操作一片空间的申请、使用和释放
  • 内存管理:开发者主动申请空间、使用空间、释放空间
  • 管理流程:申请 --- 使用---释放

JavaScript中的内存管理

  • 申请使用空间
  • 使用内存空间
  • 释放内存空间

其实和其他语言是一样的,它也是分三步来执行这样的一个过程。但是由于ECMA中并没有提供相应的操作API,所有JS语言不能像C或者C++那样由开发者主动去调用相应的API来完成内存空间的管理。

不过即使如此,它也不影响我们通过JS脚本来演示当前在内部一个空间的生命周期是怎么样实现

// 申请:由于JS中没有相应操作的API,所以我们只能在JS执行引擎在遇到变量定义语句的时候,自动给我们分配相应的内存空间
let obj = {}

// 使用
obj.name = 'chendeyang'

// 释放:JS中并没有直接释放的操作,所以采用间接释放
obj = null

image.png

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值