/benchmark-suite

Suite to benchmark things

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

benchmark-suite

Suite to benchmark things.

Build Status Coverage Status npm (scoped) js-semistandard-style standard-readme compliant

Install

$ npm install @dxos/benchmark-suite

Usage

import { Suite } from '@wirelineio/benchmark-suite';

const suite = new Suite();

// prepare your tests
suite.beforeAll(() => {
  // Set an optional context data that will be shared across each benchmark test
  suite.setContext({
    list: [...Array(10000).keys()]
  });
});

suite.test('forEach', () => {
  const { list } = suite.context;
  list.forEach(() => {});
});

suite.test('for-of', () => {
  const { list } = suite.context;
  for (const i of list) {}
});

const results = await suite.run();

suite.print(results);

Prints:

# forEach
ok ~294 μs (0 s + 293701 ns)

# for-of
ok ~498 μs (0 s + 498171 ns)

wins: forEach
ok ~2.45 ms (0 s + 2449887 ns)

API

Contributing

PRs accepted.

License

GPL-3.0 © dxos