javascript - 如何找出 Node 进程中的内存泄漏

标签 javascript node.js memory-leaks google-chrome-devtools heap-dump

我的nodejs应用程序正在泄漏内存,所以我尝试使用heapdump来比较内存变化,不幸的是,内存在headdump中没有变化,但是我的nodejs进程正在泄漏内存。所以我想native-modules可能是其中之一罪魁祸首,然后我使用 mtrace 来解决它。 但我无法理解模块“/lib64/libstdc++.so.6”正在增加大小。

有谁可以帮我提供一些工具或方法的建议来找出堆本身不会发生的内存泄漏。

许多人都很欣赏。

最佳答案

我建议使用有限的堆内存(例如 --max_old_space_size=100)启动您的 Node.js 应用程序,并等待内存不足的情况发生。

如果发生这种情况,请安装 node-oom-heapdump并再次开始该过程。当内存不足时,会自动生成堆转储,向您显示罪魁祸首。 如果它没有发生,就不会发生内存泄漏。

您的堆转储没有显示上升的原因可能是由于垃圾收集器;在进行堆转储之前,垃圾收集器就会启动。 所以我不确定你是否真的有泄漏;如果垃圾收集修复了堆使用情况,就不会发生泄漏。

关于javascript - 如何找出 Node 进程中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50657994/

相关文章:

javascript - 将复选框加载/删除到数组时出现问题

javascript - 如何使用 jQuery/Javascript 修改外部 CSS 文件的属性

android - 将 Activity 上下文传递给构造函数以在内部使用 - 这很糟糕吗

ios - ARCGIS iOS - map 图层内存问题

javascript - 如何在 React Router Dom v6 中推送到历史记录

javascript - Testcafe 在 react 中无法识别我的 DOM

node.js - Firebase 函数 - 无法检索函数源代码

node.js - 如何使用 Jest 模拟日期对象?

Javascript:如果对象未传递给函数,则忽略解构的对象参数

C:正确释放多维数组的内存