What is microtime?
The microtime package provides high-resolution time in microseconds, which is useful for performance measurement and benchmarking in Node.js applications.
What are microtime's main functionalities?
Get current time in microseconds
This feature allows you to get the current time in microseconds since the Unix epoch. It is useful for precise time measurements.
const microtime = require('microtime');
const currentTime = microtime.now();
console.log(currentTime);
Get current time as an array
This feature returns the current time as an array with two elements: seconds and microseconds. It provides a structured way to access high-resolution time.
const microtime = require('microtime');
const timeArray = microtime.nowStruct();
console.log(timeArray);
Get current time as a double
This feature returns the current time as a floating-point number representing seconds and fractions of a second. It is useful for calculations that require time in seconds.
const microtime = require('microtime');
const timeDouble = microtime.nowDouble();
console.log(timeDouble);
Other packages similar to microtime
performance-now
The performance-now package provides a high-resolution timer that returns the current time in milliseconds with sub-millisecond precision. It is similar to microtime but uses milliseconds instead of microseconds, which may be sufficient for many applications.
hrtime
The hrtime package is a Node.js built-in function that provides high-resolution real-time in nanoseconds. It is more precise than microtime and is suitable for applications requiring even finer time measurements.
node-microtime
Date.now() will only give you accuracy in milliseconds. This module calls
gettimeofday(2)
to get the time in microseconds and provides it in a few
different formats. The same warning from that function applies:
The resolution of the system clock is hardware dependent, and the time may
be updated continuously or in ``ticks.''
Installation
npm install microtime
Usage
microtime.now()
Get the current time in microseconds as an integer. Since JavaScript can only
represent integer values accurately up to Math.pow(2, 53)
, this value will
be accurate up to Tue, 05 Jun 2255 23:47:34 GMT.
microtime.nowDouble()
Get the current time in seconds as a floating point number with microsecond
accuracy (similar to time.time()
in Python and Time.now.to_f
in Ruby).
microtime.nowStruct()
Get the current time and return as a list with seconds and microseconds (matching the return value of gettimeofday(2)
).
Example
> var microtime = require('microtime')
> microtime.now()
1297448895297028
> microtime.nowDouble()
1297448897.600976
> microtime.nowStruct()
[ 1297448902, 753875 ]
Estimating clock resolution
Starting with version 0.1.3, there is a test script that tries to guess the clock resolution. You can run it with npm test microtime
. Example output:
microtime.now() = 1298960083489806
microtime.nowDouble() = 1298960083.511521
microtime.nowStruct() = [ 1298960083, 511587 ]
Guessing clock resolution...
Clock resolution observed: 1us
Warning for Cygwin users
It appears that Cygwin only implements gettimeofday(2)
with millisecond accuracy.