benchmark-suite-formatter

2.0.2 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i benchmark-suite-formatter

Weekly Downloads

4

Version

2.0.2

License

MIT

Unpacked Size

8.31 kB

Total Files

6

Last publish

Collaborators

  • feirell