Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

benchmaster

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

benchmaster

Benchmark.js wrapper for instant benchmarking.

latest
Source
npmnpm
Version
0.2.0
Version published
Maintainers
1
Created
Source

benchmaster

A small wrapper around Benchmark.js. Written to run synchronous benchmarks with minimal hassle and with as little code as possible.

$ npm install benchmaster

Syntax

bench = function (functions, [fill], [callback])
  • functions
    • object to benchmark, either one function, functions in an array ([f, g]) or custom-named functions in a array of tuples ([['add', function (a, b) { return a + b; }]]).
  • [fill]
    • argument filler function, gets called on every cycle and looks like this: function ([name], [pos]), where name is the name of the function and pos is the argument index.
  • [callback]
    • called with a data object when benchmark is done (if no callback is found the results of the benchmarks are printed to stdout).

Examples

Let's start off with the simplest example:

var bench = require('benchmaster');

bench(Math.sin);
// sin x 8,797,665 ops/sec ±1.55% (85 runs sampled)

bench([Math.sin, Math.cos, Math.tan]);
// sin x 9,136,143 ops/sec ±0.72% (89 runs sampled)
// cos x 8,885,802 ops/sec ±0.85% (92 runs sampled)
// tan x 7,802,008 ops/sec ±0.73% (90 runs sampled)

Above examples will automatically fill all missing arguments with Math.random() every cycle (this is the standard behaviour).

Using the callback function

bench(
  [Math.sin, Math.cos, Math.tan],
  null,
  function (data) {
    for (var target in data)
      if (data.hasOwnProperty(target))
        console.log(String(data[target]));
  }
);

Using custom arguments

// Generate arguments once before the benchmarks begin
function fillOnce() {
  return -1 + Math.random() * 2;
}

// If fillOnce gives us the value -0.15,
// the benchmark will run Math.sin(-0.15) every cycle

bench(Math.sin, fillOnce);

// Generate arguments every cycle
function fillEvery() {
  return function () {
    return -1 + Math.random() * 2;
  };
}

// In contrast to above, here the inner function
// will generate new arguments every cycle

bench(Math.sin, fillEvery);

Keywords

benchmark

FAQs

Package last updated on 22 Jan 2016

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