SQLite3 and mysql generate JavaScript heap out of memory

Viewed 158

The following code generates error within 1 minute:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory.

The garbage collector does not work. The same error with MySQL. Why? How to make a million queries with node js in one session?

'use strict';

const sqlite3 = require('sqlite3').verbose();

var db = new sqlite3.Database('./any.db', sqlite3.OPEN_READWRITE, (err) => {
  if (err) {
    console.error(err.message);process.exit(1);
  }
  console.log('Connected to any database.');
});

var i=0;
var start = new Date()
var hrstart = process.hrtime()
var sql='SELECT balance FROM anytable WHERE address=1';

while (i>=0) {

  db.get(sql, (err, row) => {
         if (err) { throw err; process.exit(1); }
      });

  i++;
  if (i % 100000 == 0) {
     let end = new Date() - start, hrend = process.hrtime(hrstart);
     let speed = Math.trunc(i/end*100000);
     console.log("Speed: " + speed + "/s");
 //    if (global.gc) { global.gc(); console.log("Freeing memory"); }
  }
}
0 Answers
Related