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"); }
}
}