我们在单独的进程中运行测试,我们的一些测试套件包含20多个文件。我们如何限制(而不是增加)Node.js进程使用的内存量小于300MB?如果我们不限制内存,我们可以使用高达20x500MB,大约10GB,这是太多的内存。
我可以在网上找到一些关于增加内存的文章,但我找不到任何关于限制每个进程内存的内容。
具体来说,我们使用核心child_process模块来创建子进程,我想我们需要一些标志或arg传递给cp来指定各种内存上限。
答案 0 :(得分:5)
有用的链接:
nodejs decrease v8 garbage collector memory usage
https://groups.google.com/forum/#!topic/nodejs/IYsQ_bXlzcg
https://www.quora.com/How-does-Node-js-do-memory-allocation
需要考虑的选项:
<强> -nouse空闲通知强>
<强> -expose-GC 强> 你的代码中的+ gc()函数。
<强> -max岁空间尺寸强>
<强> -max-新空间尺寸强>
<强> - 最大半空间的大小强>
同样为了减少内存,可以使用更少的内存消耗算法,代码可以更加GC友好。本机C ++模块也可以提供帮助,但可以通过一些valgrind彻底检查内存泄漏和错误。
也可以应用来自操作系统的引用来杀死超出内存限制的进程。
我知道,如果没有一些有用的选项描述,这个答案就不那么有用了,但我现在还不太了解它们,所以这个&#34;回答&#34;只是一个方向。