Socket
Book a DemoInstallSign in
Socket

sandra

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sandra

A benchmarking library for modern, promised Javascript.

latest
Source
npmnpm
Version
0.3.2
Version published
Maintainers
1
Created
Source

sandra

Greenkeeper badge NPM package Build status Coverage status Code Quality Dependencies

Sandra is a simple, promise-only, low overhead benchmarking library for ES2015. It only contains benchmark and suite classes, both of which have a single method run.

The name refers to a popular Brazilian song by Sidney Magal.

API

As aforementioned, you have two classes at your disposal:

import {Benchmark, Suite} from 'sandra'

(async () => {
  // basic operation
  const bench1 = new Benchmark('test', async () => {
    await longRunningOp()
  })

  // you can pass arguments to the benchmarked function
  const bench2 = new Benchmark('universe', async answer => {
    await longRunningOp(answer)
  }, 42)

  // don't forget you can instead refer to the function. avoid extra calls!
  const bench3 = new Benchmark('another test', longRunningOp, 42)

  // run a benchmark directly specifying the timeout to run (in ms)
  const result = await bench1.run(2000)
  // result contains an array of elapsed times, you do the maths
  console.log(result)

  // you can create a suite to run multiple benchmarks
  const suite = new Suite('nice suite')
  suite.push(bench2)
  suite.push(bench3)

  // it's possible to pass benchmark arguments to .push(), std::forward-like
  suite.push('nice one', longRunningOp, 42)

  // hook a callback to the 'cycle' event to get the results:
  suite.on('cycle', event => {
    // event contains 'average', 'deviation' and 'runs' fields too
    console.log(event.toString())
  })
  // there's also 'start', 'error' and 'complete' events

  // to run, call .run() passing an option object (currently, only timeout)
  await suite.run()
})()

You are ready to rock!

Example

You can check node-argon2 benchmarks for a real example on how to use.

License

Work licensed under the MIT License.

Keywords

benchmark

FAQs

Package last updated on 18 May 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts