This packge can be used to format the state / result of a suite from the benchmark package.
Example output:
copy an array
name ops/sec MoE samples
array splice 8,179,662 ± 0.65% 93
json stringify + parse 1,377,104 ± 0.7% 91
const RFormatter = require('benchmark-suite-formatter');
const Benchmark = require('benchmark');
function printStatus(suite) {
console.clear();
console.log('copy an array\n\n' + RFormatter.stringifySuite(suite, false, false));
}
const someArray = new Array(100);
const suite = new Benchmark.Suite;
suite.add("array splice", function () {
someArray.slice(0);
});
suite.add("json stringify + parse", function () {
JSON.parse(JSON.stringify(someArray));
});
suite.on('cycle', function (event) {
printStatus(suite);
});
// not needed because the last test will emit the cycle event aswell
// suite.on('complete', function () {
// printStatus(suite);
// });
suite.run({
'async': true
});
// do it once to print the table
printStatus(suite);
This function provides you an easy to use way to stringify a Suite of the benchmark package. It will return an string as the one shown above in the example. The tablelike output will have 4 or 5 columns depending on the third parameter. The second parameter gives you the option to hide display the name of the suite.
The colums:
name
The name of the benchmark.ops/sec
the number of executions per second.MoE
the relative margin of error (expressed as a percentage of the mean).samples
The number of sampled periods.- [
relative
] The relativeops/sec
to the slowest benchmark (2 => two times faster, 1 => as fast as the slowest).