durations
Compatibilty
Both Node.js and browsers are supported by durations
. When using Node.js, the nanosecond-granulatiry process.hrtime()
function is used. The best substitution is selected when in the browser such that consistency is maintained even if time granularity cannot be.
Installation
npm install --save durations
Methods
The following functions are exported:
duration(nanoseconds)
- constructs a new Durationnanos(nanoseconds)
- constructs a new Durationmicros(microseconds)
- constructs a new Durationmillis(milliseconds)
- constructs a new Durationseconds(seconds)
- constructs a new Durationstopwatch()
- constructs a new Stopwatch (stopped)time(function)
- times a function synchronouslytimeAsync(function(callback))
- times a function asynchronouslytimePromised(function())
- times a promise-returning function
Duration
Represents a duration with nanosecond granularity, and provides methods for converting to other granularities, and formatting the duration.
Methods
format()
- human readable string representing the durationnanos()
- duration as nanosecondsmicros()
- duration as microsecondsmillis()
- duration as millisecondsseconds()
- duration as secondsminutes()
- duration as minuteshours()
- duration as hoursdays()
- duration as days
const duration = const nanoseconds = 987654321console // Or, since toString() is an alias to format()console
Stopwatch
A nanosecond granularity (on Node.js) stopwatch with chainable control methods, and built-in formatting.
Stopwatch Methods
start()
- start and return the stopwatch (no-op if already running)stop()
- stop and return the stopwatch (no-op if not running)reset()
- reset to zero elapsed time and return the stopwatch (implies stop)duration()
- fetch the elapsed time as a DurationisRunning()
- is the stopwatch running (true
/false
)
const stopwatch = const watch = // Pauses the stopwatch. Returns the stopwatch.watch // Starts the stopwatch from where it was last stopped. Returns the stopwatch.watchstart // Reset the stopwatch (duration is set back to zero). Returns the stopwatch.watch console// ORconsole
Timer
Times the execution of a function, and returns the duration.
const time: timeSync timeAsync = // Synchronous workconst someFunction = { let count = 0 while count < 1000000 count++ console} console // Asynchronous workconst someOtherFunction = { } // Promised workconst somePromisedOp = { return { }}