UNPKG

retimer

Version:

Reschedulable Timer for your node needs

68 lines (55 loc) 1.11 kB
'use strict' /* eslint-disable no-var */ const bench = require('fastbench') const retimer = require('./') const max = 10000 function benchSetTimeout (done) { const timers = new Array(max) let completed = 0 let 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) { const timers = new Array(max) let completed = 0 let 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) } } } const run = bench([ benchSetTimeout, benchRetimer ], 100) run(run)