2

我将一个新域附加到我的 Express 应用程序中的每个传入请求,就像在node.js 文档中的示例中一样。

但是,我注意到我正在泄漏内存。当我在 Chrome 中执行heapdump并检查它时,我注意到应该立即丢弃的类实际上被旧域保留。

我应该做些什么来告诉 node.js 不要保留旧域?

4

1 回答 1

1

从文档:

域.exit()

exit 方法退出当前域,将其从域堆栈中弹出。每当执行将切换到不同异步调用链的上下文时,确保退出当前域很重要。对 exit 的调用界定了绑定到域的异步调用和 I/O 操作链的结束或中断。

如果有多个嵌套域绑定到当前执行上下文,exit 将退出嵌套在此域中的任何域。

调用 exit 只会更改活动域,不会更改域本身。可以在单个域上调用任意次数的进入和退出。

如果调用 exit 的域已被释放,则 exit 将返回而不退出该域。

于 2015-02-27T18:13:51.590 回答