node-perf-timer
Measuring elapsed time in Node, made simple.
Motivation
Node's native timing function – process.hrtime()
– is extremely precise, but low-level and messy to use for profiling without any abstraction on top of it.
node-perf-timer
aims to provide a simple API to provide a more intuitive developer experience when measuring elapsed time in Node applications.
Requirements
Installation
npm i --save-dev node-perf-timer
or
yarn add node-perf-timer --dev
Usage
const perfTimer = require('node-perf-timer')
perfTimer.start();
functionToBeMeasured();
const nsDiff = perfTimer.stopAndDiff('functionToBeMeasured()');
Configuration
By default, the configuration object takes the following shape:
const opts = {
shouldPrint: true,
precision: undefined,
defaultMessage: undefined,
};
API
config(configObj)
- Adjust default opts for all future perfTimer
calls.start()
- Starts a new timer and returns the absolute start time in nanoseconds.stop()
- Stops the current timer and returns the absolute end time in nanoseconds.diff(nsStartTime, nsEndTime)
- Accepts a start & end time in nanoseconds and returns the difference.stopAndDiff(message?)
- Combines stop() & diff(). If opts.shouldPrint
is set, the diff is logged to the console with message
, opts.defaultMessage
or simply the duration.stopAndRestart()
- Stops timer, starts a new one and returns the nanosecond diff of the stopped timer.
Full API Documentation
Examples
Examples for a number of common use cases can be found here (WIP).
License
MIT