node package manager


grade NPM version

Run benchmark files and gather reports.


Install with npm:

npm i -g grade


Create a new benchmark file in the benchmark folder and setup some benchmarks:

var grade = require('grade');
// create a new instance of Benchmark 
var Benchmark = grade.Benchmark;
var benchmark = new Benchmark();
// create a method that will run before the method under test 
var beforeI = 0;
function before () {
// create a method that will run after the method under test 
var afterI = 0;
function after () {
// create the actual method under test 
var total = 0;
var test = function () {
  var i = 0;
  while ((i++) < 50000) {}
  total += (beforeI + afterI);
// add the actual benchmark to the list of benchmarks to run 
benchmark.add('main', test, before, after);
// export the benchmark object so the runner knows what to run 
module.exports = benchmark;


Grade the benchmarks and return the results

  • options {Object}: Options containing files
  • return {Array} List of results


Create a new instance of Benchmark. Use this to add benchmarks in a file.

  • options {Object}: Additional options to pass to timer.execute

Add a new benchmark to the run.

  • title {String}: Describe the benchmark.
  • fn {Function}: The actual function to run.
  • before {Function}: A function to call before the benchmark is run.
  • after {Function}: A function to call after the benchmark is run.

Run the registered benchmarks and return timings.

  • return {Array} List of timings.


Execute a benchmark for the specified number of seconds. Seconds is an accumulation of the actual run time of the function under test. This ensures the timing and setup/teardown steps don't interfer with the actual benchmark.

  • max {number}: Number of seconds to run the tests for.
  • fn {Function}: Function under test
  • beforeFn {Function}: Function to run before running the test
  • afterFn {Function}: Function to run after running the test
  • return {Object} Results of the benchmark


Brian Woodward


Copyright (c) 2014 Brian Woodward, contributors.
Released under the MIT license

This file was generated by verb-cli on July 25, 2014.