js 垃圾回收 & js GC

时间:2023-03-10 07:03:39
js 垃圾回收 &  js GC

js 垃圾回收 & js GC

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

js 垃圾回收 &  js GC

closure 闭包

  1. 闭包的优缺点

优点:

① 减少全局变量;

② 减少传递函数的参数量;

③ 封装;

缺点:

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

内存泄漏的解决方法

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

  1. 引用计数

js 垃圾回收 &  js GC

  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://*.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


js 垃圾回收 &  js GC

xgqfrms 2012-2020

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