visualbench

Render data produced by bench in a browser

npm install visualbench
3 downloads in the last week
3 downloads in the last month

Visual Bench

Synopsis

Visual Bench sits on top of bench and it has a dual purpose:

  • Automatically save the benchmarks into a data file in JSON format
  • Allow the results to be visualized in a web browser

Installation

npm install visualbench -g

Usage

Generating some data

Load the module and supply an id to use as a data key, and optionally a file where to store the data.

var bench = require('visualbench')('emit:0.0.4')

Showing the data

Start the server with vbserver.

For more options, run vbserver --help.

For debugging, run DEBUG=http vbserver.

Example

First, generate some data.

var bench = require('visualbench')('testId')

// Straight from the `bench` examples
var foo = 1
  , bar = 2

function tmpvar () {
  var _ = foo
  foo = bar
  bar = _
}
function arrswap () {
  foo = [bar, bar = foo][0]
}
function fnswap () {
  (function(x,y){foo=x;bar=y})(bar,foo)
}

exports.compare =
  { tmpvar: tmpvar
  , arrswap: arrswap
  , fnswap: fnswap
  , "nil function":function () {}
  }

bench.runMain()

This will generate the data.json file, containing something similar to the following data.

{
    "var-swap":
        {
            "tmpvar": [
                117527.47252747252, 115553.44655344656, 113636.36363636363, 99736.26373626373, 98266.73326673327
            ]
        ,    "arrswap": [
                60341.65834165834, 58489.51048951049, 57202.79720279721, 54672.32767232767, 53621.37862137862
            ]
        ,    "fnswap":    [
                55766.23376623377, 54548.45154845155, 51734.26573426573, 51650.34965034965, 51682.317682317684
            ]
        ,    "nil function": [
                149618.38161838162, 149757.24275724276, 144548.45154845156, 127869.13086913087, 127647.35264735264
            ]
        }
}

Start the web server.

vbserver

Point your web browser at http://localhost:8080

Enjoy the results!

visualbench

Credits

Special thanks to...

npm loves you