为什么会有仅由“全局句柄”保留的,已经被解决或拒绝并且从未进行垃圾收集的承诺?
我在node.js应用程序上发生内存泄漏。使用chrome inspector,我可以看到已经解决了Promises。它们的状态为“已解决”,结果为IncomingMessage。它们显然与成功完成的http请求有关。 我可以在保留者视图中看到,它们仅由“全局句柄”保留。 调用用async-await和try-catch包装。
答案 0 :(得分:0)
我们找到并修复了泄漏。它是由从axios接收并通过管道传输到客户端的流造成的,这些流被销毁并释放而不会被耗尽。解决方案是调用stream.resume()而不是destroy()。