我在Express应用中为每个传入请求附加了一个新域,就像在example in the node.js doc中一样。
然而,我注意到我在泄漏记忆。当我执行heapdump并在Chrome中检查它时,我注意到应该立即使用的类实际上是由旧域保留的。
我应该做些什么来告诉node.js不要保留旧域名?
答案 0 :(得分:1)
来自文档:
domain.exit()
退出方法退出当前域,将其从域堆栈中弹出。任何时候执行都将切换到不同的异步调用链的上下文,确保退出当前域非常重要。对exit的调用分隔了异步调用链的结束或中断以及绑定到域的I / O操作。
如果有多个嵌套域绑定到当前执行上下文,则exit将退出嵌套在该域中的任何域。
调用exit仅更改活动域,并且不会更改域本身。可以在单个域上调用Enter和exit任意次数。
如果已经处理了调用退出的域,则退出将返回而不退出域。