我的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/