An open API service indexing awesome lists of open source software.

https://github.com/codemix/bencha

Mocha-esque UI for the excellent benchmarkjs benchmarking library
https://github.com/codemix/bencha

Last synced: 3 months ago
JSON representation

Mocha-esque UI for the excellent benchmarkjs benchmarking library

Awesome Lists containing this project

README

          

# Bencha

Mocha-esque UI for the excellent `benchmark.js` JavaScript benchmarking library.
Records benchmark history and flags performance improvements and regressions.

# Installation

npm install bencha -g

# Writing Benchmarks

Create a `bench` directory in your project. In the `bench` directory, create
an `index.js` (or `index.coffee`), e.g.

compare("RegExp vs String::indexOf", function(){
var input = "demo.string"
benchmark("RegExp", function(){
/(\.)/.test(input);
});
benchmark("String::indexOf", function(){
input.indexOf(".") > -1;
});
});

suite("My Feature", function(){
benchmark("foo() no arguments", function(){
foo();
});
benchmark("foo() with arguments", function(){
foo(true, false);
});
benchmark("bar()", function(){
bar()
});
});

The above defines two benchmark suites, the first is a comparison suite, comparison suites compare
the results of each benchmark within the suite, declaring one the winner. The second declaration defines
a suite containing three separate benchmarks that are related but not explicitly compared with each other.

To split your benchmarks into seperate files, simply `require()` them from the main `index.js` file.

# Running Benchmarks

From your project root (or the directory containing the `bench` folder), run:

bencha

This will run the benchmarks with the default `spec` reporter, recording the results in `bench/history.json`

Run `bencha --help` for more options.

# Licence

MIT