Reactjs 解决大型应用程序中的内存泄漏问题

Reactjs 解决大型应用程序中的内存泄漏问题,reactjs,memory-leaks,Reactjs,Memory Leaks,最近一周,我一直在清理互联网,试图找出如何发现并解决React应用程序中的内存泄漏,因为我认为我的应用程序中存在内存泄漏。我注意到,最近我们的应用程序崩溃越来越频繁,我继续从Node.js中得到相同的错误:API致命错误处理程序在内存耗尽后返回。我知道我之前开发的应用程序有一些严重的缺陷,但我从来不知道它们有这么糟糕,所以我决定求助于互联网来解决这个问题 我查看了Chrome开发工具并拍摄了堆快照,以查看内存是否有所增加,很明显,在应用程序中执行一些操作后,内存从123MB增加到200+MB。现

最近一周,我一直在清理互联网,试图找出如何发现并解决React应用程序中的内存泄漏,因为我认为我的应用程序中存在内存泄漏。我注意到,最近我们的应用程序崩溃越来越频繁,我继续从Node.js中得到相同的错误:
API致命错误处理程序在内存耗尽后返回。我知道我之前开发的应用程序有一些严重的缺陷,但我从来不知道它们有这么糟糕,所以我决定求助于互联网来解决这个问题

我查看了
Chrome开发工具并拍摄了堆快照,以查看内存是否有所增加,很明显,在应用程序中执行一些操作后,内存从123MB增加到200+MB。现在,这是一个很好的工具,用于确定是否存在可能的内存泄漏,但它绝对难以阅读和理解,这并不能帮助我确定问题出在哪里

现在我们的AWS实例只有1GB的大小,我看到的关于这个问题的很多答案是增加NoDE.js的最大空间,但是这并不能解决任何问题,相反,它只是在它的问题上再次出现了一个创可贴,这在我看来不是好的实践。我现在来到这里,希望有人能帮助我了解在使用

Chrome开发工具时我所看到的世界,和/或如果有人知道更好的方法来找出我代码中的问题,这也会非常有帮助。提前谢谢

编辑

在我在网上读到的javascript内存泄漏的所有最常见问题中,我们的应用程序中没有任何问题值得我关注,因此我非常困惑可能的泄漏是从哪里来的


另一件事是,应用程序从后端获取大量数据并将其保存在内存中。最小化检索到的数据量是否有帮助,或者这只会减缓问题的速度而不是解决问题?

内存泄漏似乎出现在Node.js应用程序中,而不是客户端应用程序中。您首先需要确定这一点。如果没有其他信息,很难调试此问题。您可以从查看nodejs应用程序中的日志开始。“API内存不足”可能是您的代码或您使用的库引发的错误。@nipuna777您是说内存泄漏来自我的应用程序的Node.js部分而不是React部分吗?另外,“进程内存不足后返回的API致命错误处理程序”是Node.js中的一个错误,表示它无法GC,因为它无法为其分配内存。是的,该错误看起来完全独立于客户端(React app)。您应该能够调试它以查看内存泄漏的位置。@nipuna777如果是这种情况,那么我认为这有助于进一步缩小范围。有没有一种有效的方法来调试我的应用程序的Node.js部分?不幸的是,这些都很难跟踪。首先,您可以尝试按照一些指南获取更好的日志和监控,以便尝试识别问题。作为临时修复,您可以让服务器在内存不足时自动重新启动。