node.js服务端数据量太大导致内存溢出

node.js服务端从数据库读取60多万条数据导致内存溢出
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

阅读 9.3k
4 个回答

我记得nodejs一个进程能承载的内存是2G,如果数据这么大都没释放内存,多半代码还是有点问题,可以优化分批次操作数据,或者启子线程处理再将数据推送给住线程。不过一般不需要这么做

可以流式读取啊,不要一次性全部加载到内存里

node的堆内存上限大概在1.7G这块。你可以利用Buffer或者Stream,他们是C++层面去完成的,不会占用node的堆内存。

btw:node不太适合做这些大数据IO的计算吧

新手上路,请多包涵

嗯,這個只能:1、分批次在內存處理。2、只讀出自己需要處理的字段,然後也許內存裡面可以容納。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题