我有一个试图读取100,000个文件的脚本(.txt大约800KB)。我使用fs.readFileSync()
读取每个文件,将内容推送到一个小数据库,然后继续读取下一个文件。我只将一半的文件存储在DB中。该脚本在开始时速度很快,但在达到38000个文件时速度变慢,最终因以下错误而死亡。
FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
我尝试使用更多内存运行,暴露GC但无济于事。
有人有任何猜测吗?
答案 0 :(得分:0)
您没有关闭文件。 完成操作后使用fs.close(fd, callback)功能。
由于您使用的是同步版本,因此fs.closeSync(fd)可能会对您产生更多吸引力。