Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js域内存泄漏_Node.js_Memory Leaks_Node.js Domains - Fatal编程技术网

node.js域内存泄漏

node.js域内存泄漏,node.js,memory-leaks,node.js-domains,Node.js,Memory Leaks,Node.js Domains,我将一个新域附加到我的Express应用程序中的每个传入请求,就像在中一样 然而,我注意到我正在泄漏内存。当我在Chrome中做一个测试并检查它时,我注意到应该立即被丢弃的类实际上被旧域保留了下来 我是否应该做些什么来告诉node.js不要保留旧域?来自文档: domain.exit() exit方法退出当前域,将其从域堆栈中弹出。任何时候执行都要切换到不同异步调用链的上下文,确保退出当前域是很重要的。对退出的调用限定绑定到域的异步调用和I/O操作链的结束或中断 如果有多个嵌套域绑定到当前执行上

我将一个新域附加到我的Express应用程序中的每个传入请求,就像在中一样

然而,我注意到我正在泄漏内存。当我在Chrome中做一个测试并检查它时,我注意到应该立即被丢弃的类实际上被旧域保留了下来

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

来自文档:

domain.exit()

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

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

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


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

我正在查看源代码,似乎您应该删除域上的所有侦听器,并调用
d.exit()
。域是事件发射器,通常至少有一个错误事件侦听器。在请求/响应周期结束时,您需要删除该域实例的所有侦听器以进行清理。