【问题标题】:NodeJS Memory "Leak"? [closed]NodeJS 内存“泄漏”? [关闭]
【发布时间】:2018-08-26 04:54:41
【问题描述】:

我使用 Node 8.9.4 编写了一个嵌套循环模拟/算法。它使用 Promises 和 promise-do-whilst 库来实现循环。在具有大量 RAM (32GB) 的计算机上,它可以毫无问题地运行完成。同样,在具有 1GB RAM 的 Raspberry Pi 3B 上,执行所需的时间要长得多,但根据top,在大约 25-30% 的 RAM 利用率下运行到完成输入。

但是,在具有 1GB RAM 的 Digital Ocean 液滴上运行时,RAM 利用率迅速增长,最终(很快)节点因分配错误而崩溃并转储核心。

然后,我的结论是,当在更快但 RAM 受限的计算环境中运行时,NodeJS 运行时垃圾收集器无法跟上算法的临时变量分配。问题是,如果有的话,我可以做些什么来帮助垃圾收集器在我的算法方面做得更好?

【问题讨论】:

  • 您可能不得不提炼一些简单的代码来重现问题。

标签: node.js memory garbage-collection


【解决方案1】:

虽然我很欣赏这样的评论,即我应该提炼出一个重现问题的简单示例,但事实证明,对于我来说,使用这种特定算法的桥梁太过分了。我确实发现我的环境中的差异被证明是一个适当的解决方案。在崩溃的 Digital Ocean droplet 环境中,我运行的是 Node 6.9.4,而在没有崩溃的环境中,我运行的是 Node 8.9.4。将 droplet 升级到 Node 8.9.4 可以让它在不崩溃的情况下完成。我猜 Node 8.9.4 在垃圾收集方面比 Node 6.9.4 更好,这是我的结论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-03
    • 2016-04-22
    • 2011-06-28
    • 2013-03-29
    • 2010-11-28
    • 2013-07-12
    • 2012-09-10
    相关资源
    最近更新 更多