【发布时间】:2012-06-07 17:25:59
【问题描述】:
我正在尝试将一个非常大的数据块(由 JSON.stringify 产生)写入一个文件。它必须是同步的,因为我想在 process:exit 事件期间保存它。但是,当使用 fs.writeFileSync() 时,Node 会抛出以下消息:
FATAL ERROR: JS Allocation failed - process out of memory
我已经尝试过 fs.createWriteStream(),但它似乎不起作用。此代码输出 0 字节,数据量中等,大则抛出同样的错误。
【问题讨论】:
-
这就是为什么streams for,你能解释一下为什么fs.createWriteStream() 失败了吗?
-
@Mustafa 我不知道。最终文件不包含任何内容。
-
@NisonMaël 你的字符串长度是多少?你确定,FS 操作失败而不是
JSON.stringify? -
@elmigranto 我刚刚检查过,失败似乎发生在 JSON.stringify 内部。这很奇怪,以前的测试在 writeFileSync 中失败了......你知道增加节点内存限制的任何方法吗? top 好像说我只使用了总内存大小的 33%
标签: javascript node.js io