NodeJS内存“泄漏”?

时间:2018-03-17 03:53:40

标签: node.js memory garbage-collection

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

使用1GB内存的数字海洋液滴运行,RAM利用率迅速增长,最终(很快)节点崩溃,分配错误并转储内核。

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

1 个答案:

答案 0 :(得分:0)

虽然我很欣赏这个评论,我应该提炼出一个简单的例子来重现这个问题,但对于这个特殊算法来说,事实证明这对我来说太过分了。我确实发现我的环境中的差异被证明是一个适当的解决方案。在崩溃的Digital Ocean Droplet环境中,我运行的是Node 6.9.4,而在没有崩溃的环境中,我运行的是Node 8.9.4。将Droplet升级到Node 8.9.4允许它完成而不会崩溃。我猜Node 8.9.4在垃圾收集方面比节点6.9.4更好。