Skip to content

sdgluck/brolly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

brolly

Benchmark in style

Made with ❤ at @outlandish

npm version


Run benchmarking functions in parallel...

  • runs each bench in its own process using furck
  • benchmark avg. execution time & operations/sec
  • 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, [deps, ]benches) : Function

Create a benchmark suite.

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

An element of benches should be a function or an array:

  • if a function, this will be the bench function
  • if an array, the last element should be the bench function and all previous elements should be unique dependencies of that bench, which will override any deps given as deps to the suite

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

About

☔ Benchmark in style

Resources

Stars

Watchers

Forks

Packages

No packages published