在Typescript中拥有这段代码
const f = async function() {
return 1+1;
};
let memory = process.memoryUsage();
let i = 0;
while (i < 100000) {
let result = await f().then(function(res) {}).catch(function() {});
i++;
}
let memory2 = process.memoryUsage();
console.log(memory2.heapUsed - memory.heapUsed);
Run Code Online (Sandbox Code Playgroud)
我做的迭代越多,两点之间的堆就越大.
通过正确地减少方法,而不是使用promises而是简单的方法,使用的堆变得稳定并且即使我迭代1百万次也不会改变.
const f = function() {
return 1+1;
};
let memory = process.memoryUsage();
let i = 0;
while (i < 200000) {
let r = f();
i++;
}
let memory2 = process.memoryUsage();
console.log(memory2.heapUsed - memory.heapUsed);
Run Code Online (Sandbox Code Playgroud)
谁能解释一下这里的内存泄漏究竟是什么?什么东西留在记忆中的位置在哪里?