将Node.js的内存使用限制在每个进程less于300MB

我们在单独的进程中运行testing,我们的一些testing套件包含超过20个文件。 我们如何限制(而不是增加)一个Node.js进程使用的内存量小于300MB? 如果我们不限制内存,我们可以使用高达20x500MB,大约10GB,这是太多的内存。

我可以在网上find一些关于增加内存的文章,但我无法find任何限制每个进程内存的内容。

具体来说,我们使用核心的child_process模块​​来创buildsubprocess,我想我们需要一些标志或arg来传递给cp来指定一个内存上限。

有用的链接:

nodejs减less了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半空间尺寸

同样为了减less内存,可以使用更less的内存消耗algorithm,代码可以更加GC友好。 本地C ++模块也可以帮助,但是要彻底检查一下valgrind的内存泄漏和错误。

另外来自操作系统的报价可以被用来杀死超过一些内存限制的进程。

我知道,没有一些有意义的选项说明,这个答案并不是那么有用,但我现在不是很了解他们,所以这个“答案”只是一个方向。