有没有办法将所有生存的对象转储到Node js的堆内存中?

时间:2017-03-17 07:01:24

标签: node.js memory-leaks heap-memory loopback

作为标题,我在Node js的loopback框架中遇到了内存泄漏问题。 我无法从请求API调用中发现任何问题。 所以我想知道有什么办法可以在内存使用量不断增加时将所有对象和变量转储到NodeJs的堆内存中,这样我就能在代码中找到任何线索。

感谢。

1 个答案:

答案 0 :(得分:0)

首先,如果在内存受限环境中运行节点进程,则必须确保限制分配给Node和V8的内存量。看起来像内存泄漏可能只是V8引擎的懒惰垃圾收集过程。为了监督内存使用情况,我推荐使用npm add-on memwatch-next。

您可以通过以下方式执行节点js程序来强制V8执行垃圾回收:node --expose-gc test.js

现在,在代码中,当您希望V8执行旧空间清理时,您可以按设定的时间间隔调用global.gc()。

可在此处找到更多信息:https://simonmcmanus.wordpress.com/2013/01/03/forcing-garbage-collection-with-node-js-and-v8/