Skip to content

Latest commit

 

History

History
125 lines (100 loc) · 3.22 KB

README.md

File metadata and controls

125 lines (100 loc) · 3.22 KB

AsyncMark

A benchmarking library for javascript that supports Promise.

NPM

Test Status Test Coverage Maintainability

dependencies Status devDependencies Status optionalDependencies Status

license docs

You can try benchmark on the web.

be simple

import { Benchmark } from 'asyncmark';


new Benchmark(function() {
    return new Promise((resolve, reject) => {
        setTimeout(resolve, 100);
    });
}).run().catch(console.error);

be customizable

import { Suite } from 'asyncmark';


const suite = new Suite({
    name: 'ways to find a character',
    beforeEach() {
        this.text = 'hello world';
    },
    parallel: true,
});

suite.add(function() {
    /o/.test(this.text);
});

suite.add({
    name: 'String#indexOf',
    before() {
        console.log('starting String#indexOf...');
    },
    fun() {
        this.text.indexOf('o') > -1;
    },
});

suite.add(new Benchmark({
    name: 'String#match',
    fun() {
        Boolean(this.text.match(/o/));
    },
    after(result) {
        console.log('String#match is done! ' + result);
    },
}));

suite.run()
    .then(results => {
        let min = results[0];
        results.forEach(x => {
            if (min.average > x.average) {
                min = x;
            }
        });
        console.log(min.name + ' is best way!');
    })
    .catch(err => console.error(err));

with unit test

import { Benchmark } from 'asyncmark';


describe('benchmark test', function() {
    it('foobar', async function() {
        const result = await new Benchmark(function() {
            # do_something
        }).run();

        result.assert("<100ms");  # expect faster than 100ms.
    });
});

installation

Node.js

$ npm install asyncmark

ES6

import { Benchmark, Suite } from 'asyncmark';

CommonJS

const AsyncMark = require('asyncmark');

const Benchmark = AsyncMark.Benchmark;
const Suite = AsyncMark.Suite;

Browser

<script src="https://unpkg.com/asyncmark"></script>
<script>
const Benchmark = AsyncMark.Benchmark;
const Suite = AsyncMark.Suite;
</script>