npm.io
0.5.1 • Published 9 years ago

bench-chain

Licence
MIT
Version
0.5.1
Deps
14
Vulns
0
Weekly
0
Stars
14

bench-chain

chainable benchmark recording - averages & graphs.

Build Status NPM version MIT License bench-chain Dependencies fluents

screen shot 2017-04-24 at 5 51 21 am

extension of benchmark.js

install

yarn add bench-chain
npm i bench-chain --save
const Bench = require('bench-chain')

documentation

tests

examples

basic
const Bench = require('bench-chain')

Bench
  // location to store benchmarks
  .init(__dirname, 'basic.json')
  // tag current benchmarks with, to mark what changes caused differences
  .tags('v1')
  // actual benchmarks
  .add('1 * 1', () => 1 * 1)
  .add('1 + 1', () => 1 + 1)
  .run()
async
const Bench = require('bench-chain')

const sleep = sleepDuration => new Promise(resolve => setTimeout(resolve, sleepDuration))

Bench
  .init().dir(__dirname).filename('asyncs.json').setup()
  .name('sleepy')
  .tags('v1,v2')

  // can also use .add, and then .runAsync()
  .addAsync('sleep1', async done => {
    await sleep(1000)
    done()
  })
  .addAsync('sleep2', async done => {
    await sleep(2000)
    done()
  })
  .run()
flags

using funwithflags

  • --graph will show only the graph reporting, rather than run the benchmarks
  • --run-times=10 will run the test 10 times
metadata
battery parsing when available - will be used for comparing more benchmark results with averages - amperage (number) - currentCapacity (number) - percent (number) - charging (boolean) - temp (number)
  • mem: operating system memory, nodejs memory
  • num: operations a second from benchmarkjs hertz
  • sampled: total runs samples from benchmarkjs
  • variation: variation from benchmarkjs
  • timesFor: microtime | performance.now times for beginning & end of each run
  • now: Date.now for changes over time
screen shot 2017-04-29 at 9 08 50 pm
grouped by tags
screen shot 2017-05-01 at 5 45 33 am
progress bars

digress progress

Keywords