rocket.chat.mqtt
Version:
It's a MQTT Server, using redis to scale horizontally.
66 lines (54 loc) • 1.07 kB
JavaScript
var bench = require('fastbench')
var retimer = require('./')
var max = 10000
function benchSetTimeout (done) {
var timers = new Array(max)
var completed = 0
var toReschedule = 20
schedule()
function complete () {
if (++completed === max) {
done()
}
}
function schedule () {
for (var i = 0; i < max; i++) {
if (timers[i]) {
clearTimeout(timers[i])
}
timers[i] = setTimeout(complete, 50)
}
if (--toReschedule > 0) {
setTimeout(schedule, 10)
}
}
}
function benchRetimer (done) {
var timers = new Array(max)
var completed = 0
var toReschedule = 20
schedule()
function complete () {
if (++completed === max) {
done()
}
}
function schedule () {
for (var i = 0; i < max; i++) {
if (timers[i]) {
timers[i].reschedule(50)
} else {
timers[i] = retimer(complete, 50)
}
}
if (--toReschedule > 0) {
setTimeout(schedule, 10)
}
}
}
var run = bench([
benchSetTimeout,
benchRetimer
], 100)
run(run)