首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Chrome开发人员工具中分析堆转储(内存泄漏)

在Chrome开发人员工具中分析堆转储(内存泄漏)
EN

Stack Overflow用户
提问于 2017-02-01 19:37:07
回答 1查看 631关注 0票数 3

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

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

我将分享我的快照的图像。请注意,我是按浅层大小排序的,所以假设出现在顶部的某个对象/类型一定是问题所在:

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

有人能帮上忙吗?如果你愿意,我可以分享更多的截图。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-05 00:30:23

我找到问题了。

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

这就是我所说的模块:

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

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

代码语言:javascript
复制
BodyClassName.rewind()

在我们的主App.js容器组件的呈现函数中。这样,无论用户登录的url是什么,Rewind()都会被调用,因此可以被垃圾收集的数据将在将来被适当地释放。

现在,我们的应用程序的内存使用量稳定在120mb。

无论如何,谢谢你:D

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41978823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档