Node.js内存填满

我正在尝试编写一个下载大型压缩文件的程序,将其解压到内存中,然后将内容(一系列CSV文件)推送到MongoDB。 但是,我一直在点击程序停止和打印点

FATAL ERROR: CodeRange::GetNextAllocationBlock Allocation failed - process out of memory 

当他们不再被使用时,我将缓冲区设置为null,一旦它们在Mongo中,logging就设置为null,并且一次阻止处理多个文件。 这一切都没有帮助。 有没有更多的技巧来释放内存?

我会考虑的一些东西(不知道是否所有的工作都会按照需要进行):

确保引用不见了:

手动执行GC并增加v8堆大小:

从父进程产生(杀死)subprocess做工作:

这样,我认为即使没有返回内存,操作系统也会为subprocess回收内存。

Ram作为文件系统:

这样你可以把文件系统当成内存(让操作系统把它放到内存中)。

使用freelist:

node.js对于内存分配有一个很难的1.4Gb限制。 但我不认为把大文件下载到内存是个好主意,我build议将文件写入磁盘,解压缩到磁盘,然后推送到MongDB。 这样你总是会在内存中运行一小块数据