配置Nodejs中的最大旧空间大小

use*_*646 15 out-of-memory mongodb node.js

我是nodejs和mongodb的新手.当我从nodejs应用程序中的mongodb读取大约100000条记录时,我遇到了问题.当我尝试获取100000条记录时,我收到此错误:

致命错误:CALL_AND_RETRY_LAST分配失败 - 处理内存不足

我搜索google并且每个人都说配置max old space size参数因为v8引擎有大约1,9Gb堆memmory.

我的观点是,我通过eclispe运行我的应用程序,我不知道如何配置max-old-space-size参数.

任何人都可以暗示一下吗?

非常感谢!

ps:我的英语不好,所以如果你无法理解我的问题,那很好.

Zac*_*chB 22

使用node --max_old_space_size=5000 yourapp.js允许5000 MB.查看命令行参数的eclipse启动设置,您可以在其中添加此参数.

但是,正如评论所说,您应该重新考虑将其加载到内存中,然后将其流式传输到客户端.

  • 它是"--max_old_space_size = 5000"还是"--max-old-space-size = 5000"?这令人困惑 (5认同)
  • @ZachB根据节点文档:v8选项允许单词由短划线( - )或下划线(_)分隔.例如, - stack-trace-limit相当于--stack_trace_limit.(来自https://nodejs.org/api/cli.html#cli_v8_options) (2认同)