Skip to content

Feirell/benchmark-suite-formatter

Repository files navigation

Benchmark Suite Formatter

npm GitHub issues

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);

API

stringifySuite(suite: Suite, addName = true, addRelative = true): string

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 relative ops/sec to the slowest benchmark (2 => two times faster, 1 => as fast as the slowest).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published