Skip to content

oliverzy/node-perf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Node.js load test and performance measurement tool

var Promise = require('bluebird');
Promise.longStackTraces();
var performanceRunner = require('node-perf');
var request = require('superagent');

var plugin = {};
plugin.before = function before() {
  return Promise.resolve({});
};

plugin.doIteration = function doIteration(task) {
  return new Promise(function (resolve, reject) {
    request.get('localhost:4567/rate')
    .end(function (err, result) {
      if (err)
        reject(err);
      else
        resolve(result.body);
    });
  });
};

plugin.generateData = function () {
};

plugin.after = function after(env) {
  return Promise.resolve();
};

performanceRunner.run(plugin, {iterations: 1000, concurrency: 10});

The output like this:

sp@ubuntu13-50:~/tools/ratetable/node-ratetable$ node ratetable.js -i 10000 -c 50
###progress [===========================================================] 100% 10000 0.0s
iterations: 12911ms

{ iteration:
   { meter:
      { mean: 771.303948635688,
        count: 10000,
        currentRate: 771.3005793137153,
        '1MinuteRate': 0,
        '5MinuteRate': 0,
        '15MinuteRate': 0 },
     histogram:
      { min: 0.4303159713745117,
        max: 50.32475280761719,
        sum: 11414.773022651672,
        variance: 1.4070160465684114,
        mean: 1.1414773022651672,
        stddev: 1.1861770721812201,
        count: 10000,
        median: 0.9900850057601929,
        p75: 1.1628969311714172,
        p95: 1.5546403527259824,
        p99: 2.005256474018098,
        p999: 15.711822549581546 } } }

About

Node.js load test and performance measurement tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published