在 Nodejs 中配置最大旧 space 大小

configuration max old space size in Nodejs

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

致命错误:CALL_AND_RETRY_LAST分配失败 - 进程内存不足

我搜索了 google,每个人都说配置最大旧 space 大小参数,因为 v8 引擎有大约 1,9Gb 堆内存。

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

谁能给个提示?

非常感谢!

ps: 我的英语不好,如果你看不懂我的问题,没关系。

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

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

您可以将以下内容添加到您的 package.json

"scripts": {
    "start": "node --max-old-space-size=102400 ./app.js",
     ......
}

这与另一种方式不同,后者只需写入一次并在每次 运行 时进行配置。 注意:您无需 运行 显式地执行此命令,npm start 将负责每次配置它