sc-benchmark

0.1.11 • Public • Published

sc-benchmark

npm version Circle CI

A package for benchmarking functions.

Inspired somewhat by the Go testing package.

Install

npm install --save sc-benchmark

Usage

const Suite = require('sc-benchmark').Suite;
 
let s = new Suite();
 
// Add a named benchmark.  Note that the argument `N` passed to the callback
// function to run the test: the function should always include a for loop that
// runs the test N times. This is done *inside* the test rather than as part of
// the framework to reduce function call overhead.
s.bench('sqrt', (N) => {
    for (let i = 0; i < N; i++) {
        Math.sqrt(42);
    }
});
 
// Optionally, the test can use the second `timer` object argument. Currently,
// it has a single method `start()` which tells the test when to start timing.
// This allows the test to do up front setup outside of the timed section of
// code.  If timer.start() is not called, the timing information implicitly
// starts as soon as the test function begins.
s.bench('sha1', (N, timer) => {
    let crypto = require('crypto');
    let content = '';
    for (let i = 0; i < 256; i++) {
        content += 'Hello world!\n';
    }
 
    timer.start();
    for (let i = 0; i < N; i++) {
        let shasum = crypto.createHash('sha1');
        shasum.update(content);
        shasum.digest('hex');
    }
});
 
// Start the benchmarks
s.run();

Readme

Keywords

none

Package Sidebar

Install

npm i sc-benchmark

Weekly Downloads

7

Version

0.1.11

License

none

Last publish

Collaborators

  • bcronin