WeakMap和Map内存回收对比

2021-12-06  本文已影响0人  callPromise

WeakMap

WeakMap 对象是一组键/值对的集合,其中的键是弱引用的。其键必须是对象,而值可以是任意的。
WeakMap 的 key 是不可枚举的,它的引用是弱引用,在垃圾回收的时候会被回收掉。
基本上,如果你要往对象上添加数据,又不想干扰垃圾回收机制,就可以使用 WeakMap。
下面是在node环境下的示例:


weakMap.png
Map.png
  1. 已分配的内存,用于对象的创建和存储,对应于heapUsed
  2. 未分配的但可用于分配的内存
  3. 未分配的但不能分配的内存,例如在垃圾收集(GC)之前对象之间的内存碎片

参考

Map
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map
WeakMap
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/WeakMap
http://www.ruanyifeng.com/blog/2017/04/memory-leak.html

上一篇 下一篇

猜你喜欢

热点阅读