如何计算节点进程中的内存泄漏

时间:2018-06-02 14:38:51

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

我的nodejs应用程序正在泄漏内存,所以我试图使用heapdump来比较内存更改,遗憾的是,headdump中的内存没有变化,但是我的nodejs进程正在泄漏内存。所以我认为native-modules可能是一个罪魁祸首,然后我用mtrace弄明白了。 但我无法理解模块“/lib64/libstdc++.so.6”正在增加大小。

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

很多人都很欣赏。

1 个答案:

答案 0 :(得分:1)

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

如果发生这种情况,请安装node-oom-heapdump并重新开始此过程。当它现在内存不足时,会自动生成一个堆转换,向您显示罪魁祸首。 它没有发生,没有内存泄漏。

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