次の簡単なプログラムがあります。
const fs = require("fs");
const time = Date.now();
const file = fs.createWriteStream('./test.txt');
let written = true;
file.on('drain', function () {
written = true;
});
const interval = setInterval(function () {
if (Date.now() - time > 10000) {
clearInterval(interval);
}
if (written) {
written = file.write(new Array(1000000).join('z'));
console.log(Math.floor(process.memoryUsage().rss / (1024 * 1024)));
}
}, 100);
また、次のメモリ消費量がログに記録されます。
29 38 48 58 67 77 86 96 105 115 125 134 144 153 163 173 182 192 192 192 211 220 230 2340 249 259 268 287 297 307 316 326 335 345 355 364 374 383 393 402 412 508 518 527 537 546 556 565 575 585 561
87 97 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44 25 35 44
ご覧のとおり、 まで成長して561 MB
いましたが、 まで落ち込み87 MB
、その後は を下回りまし100 MB
た。そこで何が起こるの?