A benchmarking library that supports high-resolution timers & returns statistically significant results.
Documentation | npm | Issues | Repository
Current package version: 1.0.2
@stackline/benchmark is the Stackline-maintained distribution of benchmark@2.1.4. It is an independent continuation of benchmark; original authors and licenses remain credited below.
| Item | Value |
|---|---|
| Package | @stackline/benchmark@1.0.2 |
| API target | benchmark@2.1.4 |
| Supported Node.js | See supported framework requirements |
| License | MIT |
| Main entry | benchmark.js |
| Runtime dependencies | lodash, platform |
npm install @stackline/benchmarkPreserve existing imports and plugin resolution with an npm alias:
npm install benchmark@npm:@stackline/benchmarkA robust benchmarking library that supports high-resolution timers & returns statistically significant results. As seen on jsPerf.
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': {
'@stackline/benchmark': 'path/to/benchmark',
'lodash': 'path/to/lodash',
'platform': 'path/to/platform'
}
},
['@stackline/benchmark'], function(Benchmark) {/*…*/});Using npm:
$ npm i --save @stackline/benchmarkIn Node.js:
var Benchmark = require('@stackline/benchmark');Optionally, use the microtime module by Wade Simmons:
npm i --save microtimeUsage 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#indexOfTested in Chrome 54-55, Firefox 49-50, IE 11, Edge 14, Safari 9-10, Node.js 6-7, & PhantomJS 2.1.1.
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.
- Original project: benchmark.
- Mathias Bynens.
- John-David Dalton.
- Kit Cambridge.
- Copyright 2010-2016 Mathias Bynens https://mathiasbynens.be/.
- Stackline maintenance: Alexandro Paixao Marques and Stackline contributors.
Original copyright, license notices and contributor acknowledgements remain part of this distribution. Stackline maintenance does not replace authorship of the original work.
MIT. See the license and notice files in the repository.
Use this repository's issue tracker for reproducible bugs and feature requests. Join r/Stackline for examples, usage questions and release discussions.