А можно как-то наблюдать внутреннее состояние ивент-лупа, очереди и прочего? Вот чтобы понять сколько нужно времени на обработку той или иной команды, а так же контролировать где проседает асинхронный механизм, чтобы избежать блокировки цикла и утечки памяти.
// упростим алгоритм, теперь в нем будет 1 токен по 10 цифр
function rand() {
return ('00000000000'+Math.floor(Math.random()*10000000000)).substr(-10);
}
// число экспериментов
var count = 10000000;
// вычисляем частоту повторения чисел в первой позиции
var summ = [0,0,0,0,0,0,0,0,0,0];
for(i=0;i<count; i++){
let test = rand();
let num = parseInt(test[0]);
summ[num]++;
}
console.log("частота повторения:\n");
summ.forEach((n,i)=>{
console.log(i," - ",n);
});
0 ' - ' 999089
1 ' - ' 999237
2 ' - ' 1000331
3 ' - ' 999494
4 ' - ' 1001380
5 ' - ' 1001016
6 ' - ' 999848
7 ' - ' 1000501
8 ' - ' 998291
9 ' - ' 1000813
на свалку истории монгу отправляйте
забудьте про эту поделку
все что умеет монга умеет и затюненная субд
монга это любая субд с запросами строго по pk и отрицанием 1НФ