xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

js 垃圾回收 GC All In One

js 垃圾回收 GC All In One

js GC / js Garbage Collector

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Memory_Management

闭包怎么释放内存

  1. 引用为零, ref=null

https://segmentfault.com/q/1010000020309203

closure 闭包

  1. 闭包的优缺点

优点:
① 减少全局变量;
② 减少传递函数的参数量;
③ 封装;

缺点:
① 使用闭包会占有内存资源,过多的使用闭包会导致内存溢出等

内存泄漏的解决方法

把那些不需要的, 但是垃圾回收又收不走的变量, 赋值为null,然后让垃圾回收回收走;

  1. 引用计数 👎

存在循环引用 bug

  const log = console.log;
  // [1, 2, 3, 4] 是一个值, heap 堆上的一块内存空间的地址
  // 引用计数 1 次, arr 对这个值的引用 1 次
  let arr = [1, 2, 3, 4];
  log('hello world', arr);
  setTimeout(() => {
    // 引用计数 0 次, 值赋值 null 🚀, arr 对这个值的引用 0 次
    // 触发自动 GC
    arr = null;
    log(`GC`)
  }, 3000);

  1. 标记清除 ✅
//

GC & Memory Management & Memory Leak & Garbage Collector

内存泄漏 & 垃圾收集器

https://zh.javascript.info/garbage-collection

https://javascript.info/garbage-collection

V8 GC

https://v8.dev/blog/trash-talk

refs

https://www.cnblogs.com/hejun26/p/10910590.html

https://stackoverflow.com/questions/864516/what-is-javascript-garbage-collection

https://www.tutorialspoint.com/garbage-collection-gc-in-javascript

https://auth0.com/blog/four-types-of-leaks-in-your-javascript-code-and-how-to-get-rid-of-them/

https://blog.sessionstack.com/how-javascript-works-memory-management-how-to-handle-4-common-memory-leaks-3f28b94cfbec

(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!



©xgqfrms 2012-2021

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2020-07-31 21:04  xgqfrms  阅读(350)  评论(9编辑  收藏  举报