蘑小De菇

个人技术博客

hi,我是蘑小De菇,一名前端开发者。


记录个人对技术的理解和开发过程中遇到的问题,欢迎了解更多。

内存和垃圾回收机制

内存

JavaScript通过自动内存管理实现内存分配和闲置资源回收

内存泄露

  1. 意外声明全局变量
  2. 定时器
  3. 闭包

栈内存和堆内存的区别

20210702130911

栈内存

  1. 栈内存用于存储基本数据类型的值,还有引用类型的指针
  2. 栈内存是线性有序存储。容量小,系统分配效率高
  3. 栈内存每个存储空间大小基本相同,存储值大小固定

堆内存

  1. 堆内存用于存储引用类型值
  2. 堆内存存储值大小不固定,通过栈内存存储的指针访问
  3. 堆内存首先要在堆内存新分配存储区域,之后又要把指针存储到栈内存中,效率相对就要低一些。

垃圾回收机制

垃圾回收是周期性的,回收程序每隔一段时间会自动执行

  1. 离开作用域的值,会被自动标记为可回收,在垃圾回收期间被删除
  2. 主流垃圾回收算法是标记清理
  3. 在不适用变量时解除引用有助于垃圾回收
上一篇

script标签