NodeJS C++ NAPI low level binding to get high resolution timestamp.
This API is synchronous.
- Node.js v12 or higher
This package is available in the Node Package Repository and can be easily installed with npm or yarn.
$ npm i @slimio/micro
# or
$ yarn add @slimio/micro
const { now, gettimeofday, clock } = require("@slimio/micro");
console.log(now()); // 1538484472718548
console.log(gettimeofday()); // { sec: 1538484493, usec: 222313 }
console.log(clock.now());
console.log(clock.gettime());
Return the current timestamp as microsecond. You can achieve the same result with gettimeofday():
const tv = micro.gettimeofday();
const now = (tv.sec * 1000000) + tv.usec;
console.log(now); // 1538484472718548
Warning: Micro.now() suffers the effects of drift like Date.now()
UNIX gettimeofday binding (polyfill has been added for Windows too). Return a timeval interface Object.
interface timeval {
sec: number;
usec: number;
}
export function gettimeofday(): timeval;
UNIX clock_gettime binding (polyfill has been added for Windows too). Return a timespec interface Object. This method work like NodeJS process.hrtime.
Return a millisecond no-drift timestamp. You can achieve the same with clock.gettime()
:
const { sec, usec } = micro.clock.gettime();
console.log(sec * 1e3 + usec / 1e6);
// same as:
console.log(micro.clock.now());
To contribute to the project, please read the code of conduct and the guide for N-API compilation.
Name | Refactoring | Security Risk | Usage |
---|---|---|---|
node-addon-api | Low | Node.js C++ addon api | |
node-gyp-build | Low | Node-gyp builder |
MIT