我们在单独的进程中运行测试,我们的一些测试套件包含20多个文件.我们如何限制(而不是增加)Node.js进程使用的内存量小于300MB?如果我们不限制内存,我们可以使用高达20x500MB,大约10GB,这是太多的内存.
我可以在网上找到一些关于增加内存的文章,但我找不到任何关于限制每个进程内存的内容.
具体来说,我们使用核心child_process模块来创建子进程,我想我们需要一些标志或arg传递给cp来指定各种内存上限.
有用的链接:
nodejs减少v8垃圾收集器内存使用量
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-新的空间大小
--max半空间尺寸
此外,为了减少内存,可以使用更少的内存消耗算法,代码可以更加GC友好.本机C++模块也可以提供帮助,但可以通过一些valgrind彻底检查内存泄漏和错误.
此外,OS的引用可用于终止超出某些内存限制的进程.
我知道,如果没有一些有用的选项描述,这个答案就不那么有用了,但我现在还不太了解它们,所以这个"答案"只是一个方向.