Benchmark in style
Made with ❤ at @outlandish
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
npm install --save brolly
yarn add brolly
// ES2015
import benchmark from 'brolly'
// CommonJS
var benchmark = require('brolly')
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.
Run the benchmark suite.
- iterations {Number} number of times to run each bench function
Returns self.
Log the results to the console after completion.
Returns self.
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()
All pull requests and issues welcome!
If you're not sure how, check out the great video tutorials on egghead.io!
MIT © Sam Gluck