这段代码
const file = require("fs").createWriteStream("./test.dat");
for(var i = 0; i < 1e7; i++){
file.write("a");
}
Run Code Online (Sandbox Code Playgroud)
运行约30秒后出现此错误消息
<--- Last few GCs --->
[47234:0x103001400] 27539 ms: Mark-sweep 1406.1 (1458.4) -> 1406.1 (1458.4) MB, 2641.4 / 0.0 ms allocation failure GC in old space requested
[47234:0x103001400] 29526 ms: Mark-sweep 1406.1 (1458.4) -> 1406.1 (1438.9) MB, 1986.8 / 0.0 ms last resort GC in old spacerequested
[47234:0x103001400] 32154 ms: Mark-sweep 1406.1 (1438.9) -> 1406.1 (1438.9) MB, 2628.3 / 0.0 ms last resort GC in …Run Code Online (Sandbox Code Playgroud) 我想创建一个写入流并在我的数据进入时写入它.但是,我能够创建该文件,但没有写入任何内容.最终,该过程耗尽内存.
我发现问题是我在循环中调用write().
这是一个简单的例子:
'use strict'
var fs = require('fs');
var wstream = fs.createWriteStream('myOutput.txt');
for (var i = 0; i < 10000000000; i++) {
wstream.write(i+'\n');
}
console.log('End!')
wstream.end();
Run Code Online (Sandbox Code Playgroud)
什么都没有写,甚至没有你好.但为什么?如何在循环内写入文件?