【问题标题】:Nodejs memory leak - memory allocation decreased after taking snapshot in chrome debugNodejs内存泄漏-在chrome调试中拍摄快照后内存分配减少
【发布时间】:2019-09-05 05:57:23
【问题描述】:

我正在调查我的 nodejs 脚本中的内存泄漏,通过检查 process.memoryUsage().heapUsed,使用量约为 3000MB。

chrome://inspect 还显示内存使用量约为 3000MB。但是,每次我拍摄堆快照后,保存的堆快照都会减少到 73 MB 左右,process.memoryUsage().heapUsed 也减少到这个数字。

有人知道这是怎么发生的吗?

【问题讨论】:

    标签: node.js memory-leaks heap-memory chrome-debugging


    【解决方案1】:

    在您检查使用情况后,听起来垃圾收集器正在运行。基本上每隔一段时间,它就会检查是否有任何东西不再与任何东西绑定,并将其删除,从而释放空间。请参阅这篇文章了解更多详情:

    https://blog.sessionstack.com/how-javascript-works-memory-management-how-to-handle-4-common-memory-leaks-3f28b94cfbec

    【讨论】:

    • 好的,Chrome 调试器在拍摄快照时会运行垃圾收集。我一直在使用 node-memwatch 来监视任何“stats”事件(在垃圾收集运行时发出),由于某种原因在使用 chrome 拍摄快照时没有触发。你提醒我我可以手动运行 gc,它为我解决了问题,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2010-12-01
    相关资源
    最近更新 更多