gpt4 book ai didi

node.js - 使用流减少 nodejs 应用程序内存?

转载 作者:搜寻专家 更新时间:2023-10-31 22:35:42 24 4
gpt4 key购买 nike

这可能是一个新手问题,但我进行了搜索但找不到满意的答案。

我的 node.js 应用程序似乎消耗了大量内存。每个进程消耗大约 100MB。我听说 nodejs 本身每个进程占用 ~30MB 的内存。

该应用程序是一个 JSON api,由 MongoDB 提供支持。在许多情况下,一个 API 请求将导致许多数据库请求,主要是为了填充子关系。一个典型的查询是这样的:(1) 根据查询条件获取一个 objectId 数组,以及 (2) 迭代每个 objectId,并向数据库发出查询以填充数据(有人称之为水合)。

该代码大量使用了 async.js。我试图分析内存使用情况,似乎 async.js 使用了大量内存,但没有内存泄漏的迹象。 async.js 的作者还推出了一个流库 highland.js ( http://highlandjs.org/ )。我是 nodejs 流的新手,我很好奇这是否是替代 async.js 的可能工具?该网站似乎提到了 underscore 但我主要使用 async.js 进行异步处理。

谢谢!

最佳答案

tldr:是的,使用流可能会减少您的内存占用。当您处理流时,您一次处理数据 block 。另一种方法基本上是预先将所有数据加载到 String、Buffer 等中,然后再对其进行处理。

但是,您应该注意 100MB 对于 Node 进程来说不算大。 Node/v8 假定您将有大约 1.5 GB 的空间可供使用。一个小应用程序可能有 128 MB,小应用程序可能有 256 MB,中等应用程序有 512 MB。1 GB 是一个相当大的 Node 进程,此时您可能应该将应用程序拆分成更小的部分:

关于node.js - 使用流减少 nodejs 应用程序内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22718551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com