杂谈01、js垃圾回收机制

前端为什么关注内存

  • 防止页面占用内存过大,引起客户端卡顿,甚至无响应
  • Node.js使用V8引擎,内存对后端服务器性能至关重要,因为后端服务器的持久性,更容易造成内存溢出。

js的垃圾回收机制

  • 垃圾回收
    找出那些不再继续使用的变量,然后释放其所占用的内存,垃圾回收器会按照固定的时间间隔周期性地执行这一操作
    • 优势:可以大幅度简化程序的内部管理代码,减少因长时间运转而带来的内存泄露问题
    • 不足:无法掌控内存。js没有暴露任何内存的API,无法强迫和干预内存管理

垃圾回收方式

  • 引用计数器
    跟踪记录每个值被引用的次数,如果引用次数是0,则内存释放
    • 原理
      每次引用加一,释放减一,当次数变为0,则可以内存回收
let obj={a: 10};//+1
let obj1={a: 10};//+1
obj={};//-1
obj1=null;//-1
image.png
  • 标记清除


    image.png
image.png
image.png
function foo(){
  var a = 123;// 被标记进入环境
  var b =456;// 被标记进入环境
}
foo(); // 执行完毕,被标记执行完毕,内存被回收

剩下还有3中方式,写不动了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。