brolly

1.5.0 • Public • Published

brolly

benchmark in style

Run benchmarking functions in parallel.

  • forks each bench function as child process
  • pass module dependencies to bench functions
  • pass serialisable values

Install

npm install --save brolly
yarn add brolly

Import

// ES2015
import benchmark from 'brolly'
// CommonJS
var benchmark = require('brolly')

API

benchmark(name, benches[, deps]) : Function

Create a benchmark suite.

If using the deps argument the benches cannot have their own dependency definitions.

  • name {String} name of the benchmark suite
  • benches {Array} array of benchmark functions
  • deps {Array} (optional) shared bench deps

Returns a bench function.

bench(iterations) : self

Run the benchmark suite.

  • iterations {Number} number of times to run each bench function

Returns self.

bench.print() : self

Log the results to the console after completion.

Returns self.

Example

import benchmark from 'brolly'
 
const bench = benchmark('timeout', [
  // use done callback and pass serialisable value to bench fn
  [1000, function timeout (time, done) {
    setTimeout(done, time)
  }],
  // request "delay" lib to be injected into bench fn
  // return Promise instead of calling done callback
  ['delay', function sleep (delay) {
    return delay(1000)
  }]
])
 
// run each bench 1000 times and then print the results
bench(1000).print()

Contributing

All pull requests and issues welcome!

If you're not sure how, check out the great video tutorials on egghead.io!

License

MIT © Sam Gluck

Package Sidebar

Install

npm i brolly

Weekly Downloads

2

Version

1.5.0

License

MIT

Last publish

Collaborators

  • sdgluck