node/benchmark/timers/set-immediate-breadth-args.js
Anatoli Papirovski bd79c3788b
timers: clean up for readability
Remove micro-optimizations that no longer yield any benefits,
restructure timers & immediates to be a bit more straightforward.

Adjust timers benchmarks to run long enough to offer meaningful data.

PR-URL: https://github.com/nodejs/node/pull/17279
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
2017-12-12 03:27:56 -05:00

28 lines
574 B
JavaScript

'use strict';
const common = require('../common.js');
const bench = common.createBenchmark(main, {
millions: [5]
});
function main(conf) {
const N = +conf.millions * 1e6;
process.on('exit', function() {
bench.end(N / 1e6);
});
function cb1(arg1) {}
function cb2(arg1, arg2) {}
function cb3(arg1, arg2, arg3) {}
bench.start();
for (let i = 0; i < N; i++) {
if (i % 3 === 0)
setImmediate(cb3, 512, true, null, 512, true, null);
else if (i % 2 === 0)
setImmediate(cb2, false, 5.1, 512);
else
setImmediate(cb1, 0);
}
}