我们在单独的进程中运行测试,并且一些测试套件包含 20 多个文件。我们如何将 Node.js 进程使用的内存量限制(而不是增加)到 300MB 以下?如果我们不限制内存,我们最多可以使用 20x500MB,大约 10GB,这太多了。
我可以在网上找到一些有关增加内存的文章,但我找不到任何有关限制每个进程的内存的内容。
具体来说,我们使用核心 child_process 模块来创建子进程,我想我们需要一些标志或参数来传递给 cp 来指定某种内存上限。
有用的链接:
Nodejs 减少 v8 垃圾收集器内存使用 https://stackoverflow.com/questions/30252905/nodejs-decrease-v8-garbage-collector-memory-usage
https://groups.google.com/forum/#!topic/nodejs/IYsQ_bXlzcg https://groups.google.com/forum/#!topic/nodejs/IYsQ_bXlzcg
https://www.quora.com/How-does-Node-js-do-memory-allocation https://www.quora.com/How-does-Node-js-do-memory-allocation
需要考虑的选项:
–nouse-空闲-通知
–暴露-gc+ 代码中的 gc() 函数。
–最大旧空间大小
–最大新空间大小
--最大半空间大小
另外,为了减少内存,可以使用内存消耗更少的算法,代码可以更加GC友好。本机 C++ 模块也可以提供帮助,但请使用一些 valgrind 彻底检查它们是否存在内存泄漏和错误。
还可以应用操作系统的引用来终止超出某些内存限制的进程。
我知道,如果没有一些有意识的选项描述,这个答案就没那么有用,但我现在还没有很好地学习它们,所以这个“答案”只是一个方向。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)