Node.js 域内存泄漏

标签 node.js memory-leaks node.js-domains

我将一个新域附加到 Express 应用程序中的每个传入请求,就像 example in the node.js doc 中一样.

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

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

最佳答案

来自文档:

domain.exit()

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

如果有多个嵌套域绑定(bind)到当前执行上下文,则 exit 将退出此域中嵌套的所有域。

调用 exit 仅更改事件域,而不会更改域本身。可以在单个域上调用任意次数的 Enter 和 exit。

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

关于Node.js 域内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22631449/

相关文章:

javascript - 安装 jsdom - Node js 时出现 MS 错误

javascript - GET 变量名称包含破折号会为 NodeJS Express 的 req.query 带来问题吗?

node.js - 如何让 Babel 处理 LESS 文件?

node.js - twilio 视频访问 token 过期后会发生什么?

angular - Angular2 中的内存泄漏

node.js - 为什么 NodeJS 域文档代码尝试终止该进程?

javascript - 如何从express渲染html和javascript?

android - 使用 FusedLocationProviderClient 进行位置更新会产生内存泄漏

c++ - 内存泄漏——这怎么可能?

javascript - Node 、Express、域、未捕获的异常 - 仍然丢失