yic*_*hen 6 node.js highland.js
这可能是一个新手问题,但我搜索并找不到令人满意的答案.
我的node.js应用程序似乎消耗了大量内存.每个进程消耗大约100MB.我听说nodejs本身每个进程的内存占用量约为30MB.
该应用程序是一个JSON API,由MongoDB支持.在可能的情况下,一个API请求将导致许多数据库请求,主要是填充子关系.典型的查询是这样的:(1)基于查询条件获取objectIds数组,以及(2)迭代每个objectId,并向数据库发出查询以填充数据(一些调用水合).
代码大量使用async.js.我试图分析内存使用情况,似乎async.js使用了大量内存,但没有内存泄漏的迹象.async.js的作者也推出了一个流库highland.js(http://highlandjs.org/).我是nodejs流的新手,我很好奇这是否是替换async.js的可能工具?网站似乎提到underscore但我主要async.js用于异步处理.
谢谢!
tldr:是的,使用流可能会减少内存占用。当您处理流时,您一次处理数据块。另一种方法基本上是预先将所有数据加载到字符串、缓冲区等中,然后对其进行处理。
但是,您应该注意,100MB对于节点进程来说并不大。Node/v8 假设您有大约 1.5 GB 的空间可供使用。一个小型应用程序可能有 128 MB,小型应用程序可能有 256 MB,中型应用程序可能有 512 MB。1 GB 是一个相当大的节点进程,此时您可能应该将应用程序分成更小的部分:
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |