【发布时间】:2020-01-22 17:37:38
【问题描述】:
我制作了两个代码来创建一个文件并写入其中。 问题是两者都很慢(基于磁盘速度) 有没有更好的方法写入文件?
let codes = [];
function makeid(length) {
var result = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for ( var i = 0; i < length; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
};
for (let i = 0; 1000000 > i; i++)
{
codes.push(`${makeid(20)}`);
}
fs.writeFile(`./codes/${makeid(5)}.txt`, codes.join('\n'), (err) => {
if (err)
{
message.reply("There was an error processing your request");
throw err;
}
})
/* Second Code */
let stream = fs.createWriteStream(`./codes/${makeid(5)}.txt`);
for (let i = 0; 1000000 > i; i++)
{
stream.write(`${makeid(20)}`);
}
stream.end();
/* Made by Nadelvorhang */
两个代码都需要 5-15 秒。 我正在寻找一种更快的方法,可以在 > 5 秒或瞬间完成。 文件保存在 txt 中。 谢谢! ~纳德沃杭
【问题讨论】:
-
使用编程语言编写时,有几层缓冲。 I/O 库中可能有缓冲,操作系统缓冲区,磁盘控制器也可能有自己的缓冲区。该库可能会提供禁用其缓冲的方法,但对较低级别的缓冲区没有太多控制。
标签: javascript node.js fs