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
closure 閉包
- 閉包的優缺點
優點:
① 減少全局變量;
② 減少傳遞函數的參數量;
③ 封裝;
缺點:
① 使用閉包會占有內存資源,過多的使用閉包會導致內存溢出等
內存泄漏的解決方法
把那些不需要的, 但是垃圾回收又收不走的變量, 賦值為null,然后讓垃圾回收回收走;
- 引用計數
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);
- 標記
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/
©xgqfrms 2012-2020
www.cnblogs.com 發布文章使用:只允許注冊用戶才可以訪問!