gpt4 book ai didi

node.js - 在 Chrome 开发者工具中分析堆转储(内存泄漏)

转载 作者:太空宇宙 更新时间:2023-11-04 00:28:09 24 4
gpt4 key购买 nike

我在使用正在生产的 NodeJS/Express/React 应用程序时遇到了一些问题。

问题是,它的内存使用量不断攀升,而且不会停止。它缓慢而稳定,最终 Node 崩溃了。我在 node-heapdump 的帮助下创建了几个堆转储,但是,我不知道如何正确识别泄漏。

我将分享我的快照图像。请注意,我按浅尺寸排序,因此应该出现在顶部的那些对象/类型之一一定是问题所在:

enter image description here

正如我在下面看到的,我在很多地方都看到了“Promis in @585”,这可能就是那个,但我无法识别该行、函数或组件。

有人可以帮忙吗?如果您愿意,我可以分享更多屏幕截图。

谢谢。

最佳答案

我发现了问题。

我在我的应用程序中使用 React Body Classname,因此当我们加载不同的路由时,我们可以从客户端更改主体类。当您进行服务器端渲染时,此 npm 模块需要与 Rewind() 函数一起使用,以避免内存泄漏:

这是我正在谈论的模块:

https://github.com/iest/react-body-classname

并且,为了避免内存泄漏,我们调用:

BodyClassName.rewind()

在我们的主 App.js 容器组件的渲染函数中。这样,无论用户登陆哪个 URL,Rewind() 都会被调用,因此可以被垃圾收集的数据将来会被正确释放。

现在我们的应用程序的内存使用量保持在良好且稳定的 120mb。

无论如何,谢谢:D

关于node.js - 在 Chrome 开发者工具中分析堆转储(内存泄漏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41978823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com