gpt4 book ai didi

javascript - 在TXT文件中写入的快速方法?

转载 作者:行者123 更新时间:2023-12-03 13:05:50 25 4
gpt4 key购买 nike

我制作了两个代码来制作一个文件并写入其中。
问题是两者都很慢(基于磁盘速度)
有没有更好的方法写入文件?

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中。
谢谢! ~Nadelvorhang

最佳答案

缓冲

您可以创建 Buffer,而不是创建然后加入的字符串数组。 .这更快,因为 Node.js 不做任何转换,只是将缓冲区中的字节写入磁盘。

// improved first method

const codes = Buffer.allocUnsafe(1000000 * 20);

for (let i = 0; 1000000 > i; i++) {
codes.write(`${makeid(20)}`, i * 20, 20);
}

fs.writeFileSync(`./${makeid(5)}.txt`, codes);

在我的机器上,这需要 970.012 毫秒而不是 1907.401 毫秒,之前它是 减少 50% .

关于javascript - 在TXT文件中写入的快速方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59865363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com