Giter VIP home page Giter VIP logo

ms-perf's Introduction

ms-perf

Node.js inline function performance measurement tool. Provides simple way to understand how much relative time your functions/promises are being executed for

install

npm i ms-perf -S

usage

Module generally consists of a single function with different use

  1. start timer instance
const perf = require('ms-perf');

// pass in timer name
const timer = perf('timer-name');
  1. register timer triggers
// returns Function
timer('trigger')
  1. retrieve timers
// returns reference to timers object
// and cleans up internal context
timer()

Example

// bluebird has many useful utilities...
const Promise = require('bluebird');
const perf = require('ms-perf');
const rethrow = e => {
  throw e
};

function asyncExecutionFlow(input) {
  const timer = perf('async');

  return Promise
    .resolve(input)
    .then(doHTTPRequest)
    // please do not use '$' as this is a reserved character for total
    // for performance reasons there is no check on the input argument
    .tap(timer('http'))
    .then(processHTTPRequest)
    .tap(timer('parse'))
    .then(parsed => ({
      meta: {},
      data: parsed
    }))
    .catch(e => {
      // ensure that in-case of errors timer is cancelled
      const timers = timer();
      // do something with error timers / handle errors
      throw e;
    })
    .tap((data) => {
      data.meta.timers = timer();
    })
    .tap(console.log)

  // when promise is completed, output will look like this:
  //
  // {
  //   meta: {
  //     timers: {
  //       'async:http': 321,
  //       'async:parse': 1.21,
  //       'async:$': 323.30
  //     }
  //   },
  //   data: {
  //     ...whatever was inside parsed
  //   }
  // }
}

ms-perf's People

Contributors

avvs avatar

Watchers

 avatar James Cloos avatar  avatar Alexey Khoroshev avatar bludzhd avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.