【发布时间】:2026-02-17 13:55:02
【问题描述】:
当我在setInterval() 中运行bluebird 的promisify() 时,我发现了内存泄漏问题。有问题https://github.com/petkaantonov/bluebird/issues/1663。我怀疑这是因为new Function() 的“编译代码”不能被nodejs 的gc 收集。所以我运行以下测试并通过 Chrome DevTools 记录堆快照。随着时间的推移,new Function()的“编译代码”越来越多。
setInterval(() => {
const a = new Function('a', 'console.log(a)');
a('1');
}, 10);
我想知道为什么 Node.js gc 没有收集到 new Function() 的“编译代码”以及它是否是一个错误?
【问题讨论】:
标签: javascript node.js memory-leaks v8 jit