将每个进程的 Node.js 内存使用量限制在 300MB 以下

2024-04-12

我们在单独的进程中运行测试,并且一些测试套件包含 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(使用前将#替换为@)

将每个进程的 Node.js 内存使用量限制在 300MB 以下 的相关文章

  • 无法从 GetProcessId(.. hWnd) (pInvoke) 中提取 processID

    我使用以下方法 DllImport kernel32 dll SetLastError true static extern int GetProcessId IntPtr hWnd 尝试获取正在运行的进程的 processId 我拥有的唯
  • 如何使用 Puppeteer 执行右键单击?

    我正在尝试使用 Puppeteer 执行右键单击 我尝试添加选项 await component click button right 但我得到的只是定期单击该组件 我关注木偶师的API https github com GoogleChr
  • 在 Windows 7 中安装 Express.JS 的问题

    我已通过其网页上的安装程序安装了 Node js 并将其路径添加到我的环境变量中 以便我可以使用node and npm通过命令行 如果我制作一个快速应用程序 它可以工作 但我必须手动创建它 我想这很好 但我想知道为什么我不能使用expre
  • $lookup 多个级别而不使用 $unwind?

    我有以下收藏 场地集合 id ObjectId 5acdb8f65ea63a27c1facf86 name ASA College Manhattan Campus addedBy ObjectId 5ac8ba3582c2345af70d
  • 比较 PHP 和 NodeJS 之间的 BCrypt 哈希值

    对于我正在开发的应用程序 nodejs 需要验证 PHP 创建的哈希值 反之亦然 问题是 PHP 中生成的哈希值 通过 Laravel 的Hash类 它只使用 PHP 的password hash函数 在 Node js 中测试时返回 fa
  • Express 申请中未处理的拒绝

    我的 Express 应用程序中运行着许多基于 ES6 Promise 的代码 如果有一个错误从未被捕获 我将使用以下代码来处理它 process on unhandledRejection function reason p consol
  • 我可以在 chrome devtools 中执行 nodejs javascript 脚本吗?

    是否可以使用Chrome 开发工具执行终端命令node myfile js 所以chrome控制台会输出所有console log来自我的代码 我有一些terminal插件安装在我的 IDE 中 当我想在我的文件上运行此命令时 我使用一些键
  • C# 中类实例的内存使用情况[重复]

    这个问题在这里已经有答案了 可能的重复 C NET 对象使用多少内存 https stackoverflow com questions 426396 how much memory does a c net object use 就像标题
  • 在 Firebase 管理中验证无密码电子邮件注册

    我试图让我的应用程序的用户通过电子邮件 链接登录 无需密码 客户端 用 React Native 编写 使用 Javascript SDK 请求登录链接 如下所示 基于这个答案 https stackoverflow com questio
  • Node.js 无限循环功能,在某些用户输入时退出

    我不太明白节点在异步和循环方面到底是如何工作的 我想在这里实现的是让控制台打印出来 Command 并等待用户的输入 但在等待时我希望它运行 一些随机函数 无休止地直到用户在终端上输入 exit 感谢所有的帮助 以及可能的解释 以便我能理解
  • 从扩展 pug/jade 模板将变量传递到基本布局

    我想通过在扩展基本布局的模板中声明变量来在 body 标记上设置一个类 当我尝试时 body class变量是undefined在布局中 看起来布局是在扩展模板之前执行的 或者它们是在不同的范围内执行的 还有别的办法吗 mixin 在这里可
  • 为什么MIPS中内存地址加4?

    如果某些内容存储在 0x1001 0000 处 则下一个内容将存储在 0x1001 0004 处 如果我是正确的 32 位架构中的内存块每个都是 32 位 那么0x1001 0002会指向32位的后半部分吗 首先 MIPS 架构中的内存地址
  • { [FacebookTokenError:此授权码已被使用。]

    我有一个航行应用程序 我正在尝试实现 Facebook 登录 当我单击 使用 facebook 登录 按钮时 出现此错误 error A server error occurred in a request error FacebookTo
  • 从 Google Chat POST 请求验证 JWT

    我有一个 NodeJS 机器人使用 HTTPs 端点连接到 Google Chat 我正在使用快递来接收请求 我需要验证所有请求是否都来自 Google 并且希望使用 Google 随请求发送的不记名令牌来执行此操作 我的问题是我正在努力寻
  • Electron 应用程序可以与 java 代码集成吗?

    由于node js仍然缺乏Java中存在的重要功能 因此我想使用Java而不是node js 并使用Web语言 html js css 创建客户端 Electron 是跨平台的 java 也是跨平台的 因此似乎有一个能够两全其美的解决方案
  • Momentjs 时区 - 获取特定时区时间的日期

    我正在尝试根据用户特定时区的 UTC 基准 创建日期 在本例中使用 momentjs momentjs 时区的 美国 洛杉矶 但是 我没有得到我期望的结果 var tempDate moment 1448841600000 moment 2
  • 如何停止supervisord.conf文件中指定的单个程序? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想使用supervisor来管理几个进程 我已经在supervisord conf文件中进行了更改 我想稍后停止一些程序 我尝试使用 s
  • npm solc:断言错误 [ERR_ASSERTION]:指定的回调无效

    我正在尝试使用 npm solc 编译 Solidity 智能合约 我尝试遵循不同的例子 链接到示例 https medium com coinmonks how to compile a solidity smart contract u
  • 使用node和multer将图像上传到heroku不起作用

    我正在尝试使用 Node 后端将图像文件上传到 Heroku 我可以使其工作 同样的过程在本地主机测试中工作得很好 但是在将我的项目部署到 Heroku 并测试它之后 过程和文件中出现错误不会上传 后端 let storage multer
  • Javascript - 从 AWS s3 存储桶读取镶木地板数据(使用快速压缩)

    In nodeJS 我正在尝试读取镶木地板文件 压缩 snappy 但没有成功 I used https github com ironSource parquetjs https github com ironSource parquet

随机推荐