我使用nodejs逐个单元地解析xlsx文件,解析的单元格值将存储在mongodb中。
对于小于3MB的小型excel文件,它可以正常工作。但是在超过3MB的情况下,节点应用程序因为“ CALL_AND_RETRY_2分配失败 - 处理内存不足”而导致错误崩溃。
二手技术: Nodejs:v0.8.22, MongoDB:2.2.4
系统配置: 操作系统:Ubuntu 12.04, 内存:4GB, 处理器:Intel I5
我将xlsx数据解析并存储到mongodb中的步骤:
根据我的知识,STEP2导致内存不足错误,因为我将整个xlsx值存储在一个JS对象中?。
请提供一些想法,以改变上述过程的方式或其他一些有效的方法来处理这种情况。
感谢。
答案 0 :(得分:1)
您可以尝试使用
启动节点 node --max-old-space-size=3000 app
将max mem增加到3 GB。但是,节点的默认内存限制在32位系统上为512 MB,在64位上为1 GB(根据https://github.com/joyent/node/wiki/FAQ)。如果在解析3 MB excel文件时遇到这些限制,那听起来很奇怪 - 可能是内存泄漏。也许你想发布代码?
顺便说一下,Node 0.8并不是最新最好的......也许你也应该尝试更新到更新的版本。