benchmaster
A small wrapper around Benchmark.js. Written to run synchronous benchmarks with minimal hassle and with as little code as possible.
$ npm install benchmaster
Syntax
bench = function (functions, [fill], [callback])
functions
- object to benchmark, either one function, functions in an array (
[f, g]
) or custom-named functions in a array of tuples ([['add', function (a, b) { return a + b; }]]
).
[fill]
- argument filler function, gets called on every cycle and looks like this:
function ([name], [pos])
, where name
is the name of the function and pos
is the argument index.
[callback]
- called with a
data
object when benchmark is done (if no callback is found the results of the benchmarks are printed to stdout
).
Examples
Let's start off with the simplest example:
var bench = require('benchmaster');
bench(Math.sin);
bench([Math.sin, Math.cos, Math.tan]);
Above examples will automatically fill all missing arguments with Math.random()
every cycle (this is the standard behaviour).
Using the callback function
bench(
[Math.sin, Math.cos, Math.tan],
null,
function (data) {
for (var target in data)
if (data.hasOwnProperty(target))
console.log(String(data[target]));
}
);
Using custom arguments
function fillOnce() {
return -1 + Math.random() * 2;
}
bench(Math.sin, fillOnce);
function fillEvery() {
return function () {
return -1 + Math.random() * 2;
};
}
bench(Math.sin, fillEvery);