Skip to content
A benchmarking library. As used on jsPerf.com.
JavaScript HTML CSS Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Move contributing text. May 2, 2016
doc Bump to v2.1.4. Mar 28, 2017
example/jsperf Remove sites from copyright header and package.json. Jul 3, 2018
plugin
test
.gitattributes Simplify .gitattributes. [ci skip] May 16, 2014
.gitignore Add coveralls to travis.yml and fix node 0.6 npm usage. Dec 28, 2013
.travis.yml Test against latest node (#213) Nov 26, 2018
LICENSE Remove sites from copyright header and package.json. Jul 3, 2018
README.md
benchmark.js Remove sites from copyright header and package.json. Jul 3, 2018
index.js Add index.js and update qunit-clib. Oct 1, 2012
package-lock.json Update deps. Jun 17, 2018
package.json Remove sites from copyright header and package.json. Jul 3, 2018

README.md

Benchmark.js v2.1.4

A robust benchmarking library that supports high-resolution timers & returns statistically significant results. As seen on jsPerf.

Documentation

Download

Installation

Benchmark.js’ only hard dependency is lodash. Include platform.js to populate Benchmark.platform.

In a browser:

<script src="lodash.js"></script>
<script src="platform.js"></script>
<script src="benchmark.js"></script>

In an AMD loader:

require({
  'paths': {
    'benchmark': 'path/to/benchmark',
    'lodash': 'path/to/lodash',
    'platform': 'path/to/platform'
  }
},
['benchmark'], function(Benchmark) {/**/});

Using npm:

$ npm i --save benchmark

In Node.js:

var Benchmark = require('benchmark');

Optionally, use the microtime module by Wade Simmons:

npm i --save microtime

Usage example:

var suite = new Benchmark.Suite;

// add tests
suite.add('RegExp#test', function() {
  /o/.test('Hello World!');
})
.add('String#indexOf', function() {
  'Hello World!'.indexOf('o') > -1;
})
// add listeners
.on('cycle', function(event) {
  console.log(String(event.target));
})
.on('complete', function() {
  console.log('Fastest is ' + this.filter('fastest').map('name'));
})
// run async
.run({ 'async': true });

// logs:
// => RegExp#test x 4,161,532 +-0.99% (59 cycles)
// => String#indexOf x 6,139,623 +-1.00% (131 cycles)
// => Fastest is String#indexOf

Support

Tested in Chrome 54-55, Firefox 49-50, IE 11, Edge 14, Safari 9-10, Node.js 6-7, & PhantomJS 2.1.1.

BestieJS

Benchmark.js is part of the BestieJS “Best in Class” module collection. This means we promote solid browser/environment support, ES5+ precedents, unit testing, & plenty of documentation.

You can’t perform that action at this time.