GS
Size: a a a
GS
A
const https = require('https');
const source = 'https://www1.nyc.gov/assets/planning/download/zip/data-maps/open-data/nyc_pluto_19v2_csv.zip';
const consoleMemory = () => {
  const m = process.memoryUsage();
  for (const key of Reflect.ownKeys(m)) {
    m[key] = ~~(m[key] / 1024 / 1024);
  }
  console.log(m);
}
const getDataStream = () => {
  return new Promise((resolve) => {
    https.get(source, resolve);
  });
}
const main = () => new Promise(async (resolve) => {
  const dataStream = await getDataStream();
  let c = 0;
  dataStream.on('data', (data) => {
    c++;
    if (c % 1000) return;
    consoleMemory();
  });
  dataStream.on('end', resolve);
});
(async () => {
  consoleMemory();
  await main();
  await new Promise(res => setTimeout(res, 5000));
  consoleMemory();
})();{ rss: 30, heapTotal: 4, heapUsed: 2, external: 1 }
{ rss: 44, heapTotal: 4, heapUsed: 2, external: 1 }
{ rss: 47, heapTotal: 4, heapUsed: 2, external: 2 }
{ rss: 51, heapTotal: 4, heapUsed: 3, external: 15 }
{ rss: 57, heapTotal: 4, heapUsed: 2, external: 8 }
{ rss: 57, heapTotal: 4, heapUsed: 3, external: 11 }
{ rss: 50, heapTotal: 4, heapUsed: 2, external: 11 }
{ rss: 59, heapTotal: 5, heapUsed: 2, external: 2 }
{ rss: 58, heapTotal: 5, heapUsed: 3, external: 10 }
{ rss: 58, heapTotal: 5, heapUsed: 2, external: 8 }
{ rss: 58, heapTotal: 5, heapUsed: 2, external: 3 }
{ rss: 58, heapTotal: 5, heapUsed: 3, external: 15 }A
GS
{ rss: 30, heapTotal: 4, heapUsed: 2, external: 1 }
{ rss: 44, heapTotal: 4, heapUsed: 2, external: 1 }
{ rss: 47, heapTotal: 4, heapUsed: 2, external: 2 }
{ rss: 51, heapTotal: 4, heapUsed: 3, external: 15 }
{ rss: 57, heapTotal: 4, heapUsed: 2, external: 8 }
{ rss: 57, heapTotal: 4, heapUsed: 3, external: 11 }
{ rss: 50, heapTotal: 4, heapUsed: 2, external: 11 }
{ rss: 59, heapTotal: 5, heapUsed: 2, external: 2 }
{ rss: 58, heapTotal: 5, heapUsed: 3, external: 10 }
{ rss: 58, heapTotal: 5, heapUsed: 2, external: 8 }
{ rss: 58, heapTotal: 5, heapUsed: 2, external: 3 }
{ rss: 58, heapTotal: 5, heapUsed: 3, external: 15 }GS
Г
A
VD
GS
Г
A
GS
A
ВС
MD
AS
ВС
MI
GS
MI
dataStream.on('data', () => {
    c++;
    global.gc();
    
    if (c % 1000) return;
    
    consoleMemory();
  });node --expose-gc ./stream.js
{rss: 19, heapTotal: 4, heapUsed: 2, external: 1 }
{ rss: 27, heapTotal: 5, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 5, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 5, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 5, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 5, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 4, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 5, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 5, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 5, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 4, heapUsed: 2, external: 1 }
{ rss: 28, heapTotal: 5, heapUsed: 2, external: 1 }