Benchmark.js
A benchmarking library. As used on jsPerf.com.
README
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:
- ``` html
- <script src="lodash.js"></script>
- <script src="platform.js"></script>
- <script src="benchmark.js"></script>
- ```
In an AMD loader:
- ``` js
- require({
- 'paths': {
- 'benchmark': 'path/to/benchmark',
- 'lodash': 'path/to/lodash',
- 'platform': 'path/to/platform'
- }
- },
- ['benchmark'], function(Benchmark) {/*…*/});
- ```
Using npm:
- ``` sh
- $ npm i --save benchmark
- ```
In Node.js:
- ``` js
- var Benchmark = require('benchmark');
- ```
Optionally, use the microtime module by Wade Simmons:
- ``` sh
- npm i --save microtime
- ```
Usage example:
- ``` js
- 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.