Следующий код генерирует ошибку в течение 1 минуты:
FATAL ERROR: Неэффективные сжатые маркеры близки к пределу кучи. Выделение не удалось - JavaScript куча нехватки памяти.
Сборщик мусора не работает. Та же ошибка с MySQL. Почему? Как сделать миллион запросов с node js за один сеанс?
'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"); }
}
}