Буфер
Вместо создания массива строк, к которым вы затем присоединяетесь, вы можете создать 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% меньше .