benchmarkjs

0.1.8 • Public • Published

BenchmarkJS

A easy benchmark framework for Javascript code.

Installation

Installing with npm:

$ npm install benchmarkjs --save-dev

This module don't have dependencies.

Usage

In a browser:

<script src="benchmarkjs.js"></script>

In Node.js:

var Benchmark = require('benchmarkjs');

Enable Node.js V8 native syntax for optimization check with this parameter:

node --allow-natives-syntax

Usage example:

var benchmarkjs = require('benchmarkjs');
 
benchmarkjs.options({
    testTime: 4000
});
 
var bigArray1 = new Array(1000);
benchmarkjs('n < max', function () {
    for (var n = 0, max = bigArray1.length; n < max; n++) {
        bigArray1[n] = 0 | Math.random() * 1000;
    }
});
 
var bigArray2 = new Array(1000);
benchmarkjs('n < hugeArray2.length', function () {
    for (var n = 0; n < bigArray2.length; n++) {
        bigArray2[n] = 0 | Math.random() * 1000;
    }
});
 
console.log(benchmarkjs.results);
 

The result is similar to this:

[ { name: 'n < max', // test name
    elapsed: 4395, // total time to test
    checks: 2, // internal time checks
    totalIterations: 484811, // total executions
    persecondIterations: 110309, // execution per second
    isOptimized: null, // have value only with node and the paramenter --allow-natives-syntax
    diff: '0%' }, // difference with the best case
  { name: 'n < hugeArray2.length', // test name
    elapsed: 4325, // total time to test
    checks: 2, // internal time checks
    totalIterations: 475535, // total executions
    persecondIterations: 109950, // execution per second
    isOptimized: null, // have value only with node and the paramenter --allow-natives-syntax
    diff: '0.33%' } ] // difference with the best case

isOptimized can have these values:

1 - "optimized"
2 - "not optimized"
3 - "always optimized"
4 - "never optimized"
6 - "maybe deoptimized"
7 - "turbofan optimized"

Contributor

Package Sidebar

Install

npm i benchmarkjs

Weekly Downloads

6

Version

0.1.8

License

MIT

Last publish

Collaborators

  • todojs