总结: WeakMap 的 key 和 value 都是弱引用
JavaScript
global.gc();
console.log(process.memoryUsage()); // heapUsed: 1835112 ≈ 1.8M
const wm = new WeakMap();
let key = new Array(5 * 1024 * 1024);
let value = new Array(5 * 1024 * 1024);
wm.set(key, value);
global.gc();
console.log(process.memoryUsage()); // heapUsed: 86161712 ≈ 86.1M
key = null;
value = null;
global.gc();
console.log(process.memoryUsage()); // heapUsed: 2278928 ≈ 22.7M
// 注意, 这里没有删除 wm 的 key 和 value, 但是都被垃圾回收了
Discussion
留言与讨论
想法、补充和不同意见都欢迎。